1
resposta

Erro gabarito - exercício 03 ?

Olá, como vão?

No exercício 3 parece que o gabarito está errado. É informado que a opção correta é a letra C, porém, ao executar o programa do exercício, o resultado é a opção B "Compila e imprime 100 vezes o número 3."

Poderiam confirmar qual é a opção correta?

Segue o programa do exercício:

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);
        }
    }
}

E porque o número 3 é repetido sempre, ignorando os novos valores do for ?

1 resposta

Olá Ivan, tudo bem?

Realmente, ao executar o programa do exercício, o resultado é a opção B "Compila e imprime 100 vezes o número 3." Isso acontece porque, a cada iteração do loop for, é criada uma nova instância da classe Teste, e a variável estática i é inicializada com o valor 3 novamente.

Para corrigir o programa e imprimir os valores corretos de i, basta modificar o for para utilizar a mesma instância da classe Teste em todas as iterações. Assim:

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

Dessa forma, o programa irá imprimir os valores de i corretamente, de 10 a 99.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software