1
resposta

Na aula ele explicou uma situação

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?

1 resposta

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!