Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Exercicio Infinitos 1

Boa noite! Tudo bem?

Não entendi a questão do loop infinito a respeito do método "WHILE". Testei o código porém dá um loop infinito e não sei o por quê. Poderia me orientar o que houve?

Obrigado, Henrique Ribeiro Siqueira.

5 respostas
public class Programa {

    public static void main(String[] args) {
        int contador = 1;

        while(contador <= 10) {
            System.out.println(contador);
        }
    }
}

Como o código funciona (passo-a-passo): 1º Passo: atribuir o valor 1 à variável contador. 2º Passo: Se contador for menor OU igual a 10, deve-se repetir o código dentro do escopo do while enquanto contador for menor OU igual a 10. 3º Passo: Imprimir o valor atual de contador

Veja que o problema do loop infinito é que o contador sempre tem valor 10 pois nunca alteramos seu valor em nenhum lugar no código.

Poderíamos parar esse loop infinito atribuindo um valor que não satisfaça a condição dentro do while, como por exemplo:

  • Atribuir um valor superior à 10
  • Após a impressão, utilizar a palavra break (Neste caso, irá imprimir 1 e irá parar de executar as instruções do while devido ao break);
solução!

Consegui chegar ao objetivo alterando a linha System.outprintln(contador); para System.outprintln(contador++); Porém a IA afirma que não resolvi o problema, mesmo tendo alcançado o resultado proposto pelo exercício. Alguém pode me esclarecer o que, de fato, deveria ser feito?

Consegui. Porém queria saber por que o incremento no contador não pode estar dentro do comando de print, sendo que produz o mesmo resultado, apenas encurtando o código.

Acredito que a resposta esperada para a questão é de informar que estava faltando o incremento na variável contador, apenas...

Na minha visão, você até pode incrementar a variável no println, mas isso começa a depender conforme o tamanho do projeto.

Imagina que você tem um programa com muitas linhas de código. As vezes pode não ficar evidente e/ou legível incrementar uma variável em um println podendo ter perda tempo para poder identificar essa variável.

Espero ter ajudado!

Ajudou sim, era bem nesse sentido minha duvida mesmo. Obrigadão!