2
respostas

Exercício 3 Aula 1

O exercício afirma que o código abaixo compila e imprime de 10 a 99. Estaria correto caso não estivesse faltando fechar o parêntese do laço for.

class Teste {
    static int i = 3;
    public static void main(String[] a) {
        for (new Teste().i = 10; new Teste().i < 100;
             new Teste().i++) {
            System.out.println(i);
        }
    }
}
2 respostas

Oi, Tarcio! Tudo bem?

No exemplo enviado podemos encontrar o parêntese fechado corretamente, gerando um código que conseguimos compilar, funcionando conforme esperado, mas vamos entender por quê:

  1. Variável estática: i é uma variável estática, ou seja, pertence à classe Teste e não a uma instância específica da classe.
  2. Inicialização no laço for: No laço for, new Teste().i = 10 inicializa i com 10, como i é estática, todas as referências a new Teste().i estão se referindo à mesma variável i.
  3. Condição e incremento: new Teste().i < 100 e new Teste().i++ também operam sobre a variável estática i.

Portanto, o loop for irá funcionar corretamente, incrementando i de 10 até 99 e imprimindo esses valores.

Espero ter ajudado! Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!

Correto, não tinha reparado a quebra de linha :)