Na aula sobre for, o professor explicou que os três itens do for são opcionais, resultando em uma impressão infinita da mensagem, o código da questão não compila pois tem outro código depois? Ou outro motivo que não foi explicado em aula?
Na aula sobre for, o professor explicou que os três itens do for são opcionais, resultando em uma impressão infinita da mensagem, o código da questão não compila pois tem outro código depois? Ou outro motivo que não foi explicado em aula?
Olá, Vitor.
Tudo bem?
Entendi sua dúvida sobre a aula de laços e o código fornecido. O que o professor mencionou está correto: os três itens do for
são opcionais, e um for
vazio (for(;;)
) resulta em um loop infinito. No entanto, o problema que você está enfrentando tem a ver com o código que vem depois do loop.
No exemplo do exercício, temos o seguinte código:
class A {
public static void main(String[] args) {
for(;;) {
System.out.println("a");
}
System.out.println("b");
}
}
Neste caso, o loop for(;;)
é um loop infinito que imprime "a" continuamente. Devido ao fato de ser um loop infinito, o programa nunca sairá desse loop para alcançar a linha System.out.println("b");
. Portanto, o código após o loop infinito é inatingível.
Em Java, código inatingível é um erro de compilação. Por isso, a resposta correta para a questão seria:
A) Não compila.
Diferente do vídeo, no exercício tem essa linha no código que causa o erro, remove ela: System.out.println("b");
, e tenta novamente.
class A {
public static void main(String[] args) {
for(;;) {
System.out.println("a");
}
}
}
Agora compila e imprime a letra "a" infinitamente.
Espero ter ajudado e bons estudos!