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.
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.
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:
break
(Neste caso, irá imprimir 1 e irá parar de executar as instruções do while devido ao break
);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!