Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 6 da Aula 2 - Crie e use laços do tipo for, incluindo o enhanced for

Não entendi porque o for imprime 2x o num.1 "O código compila e imprime 0 1 1 2"

4 respostas
solução!

Priscila, Bom dia .

vamos analisar o for deste exercicio:

for(int i=0; i<2; i++, System.out.println(i))

neste caso ele está recebendo uma instrução de pós incremento e uma instrução de imprimir o a variavel i .

alterando o código para poder explicar e tentar ser mais claro a visualização :


        for(int i=0; i<2; ) {
            System.out.println(i); // chama-lo de 1
            i++; // dentro do for
            System.out.println(i); // este é o de dentro do for vou chama -lo 2
        }

o for está acontecendo nessa sequencia , ok !

como ele está fazendo quando:

i = 0 , ele verifica i < 2 , então ele imprime 0 com o System.out.println (1)

depois ele incrementa i , então i = 1 , ele imprime com o segundo system.out.println (2) ( esse é o que está dentro do for ).

quando i = 1 , ele verifica novamente i < 2 , e imprime com System.out.println (1)

incrementa o i , então i = 2 , e imprimie no System.out.println(2) "(dentro do for)"

quando i = 2 , ele verifica que i < 2 , isso ele ve que não é menor que 2 e sai do for .

Espero ter te ajudado , caso foi sanada suas dúvida feche o tópico, por gentileza .

Bons Estudos

Oi Priscila, tudo bem?

Perceba que a parte do incremento do for tem duas instruções. Primeiro incrementa o valor da variável i; depois imprime o valor de i.

O incremento é realizado após os comandos dentro do corpo do for, e antes da verificação (i < 2). Então acontece o seguinte:

I. O valor de i é zero; entra no corpo do for, imprime 0; incrementa 1 em i; i agora vale um; segunda parte do incremento: imprime 1; verifica se i < 2: não é. próxima iteração.

II. Dentro do corpo do for imprime i, que é 1. até agora temos 0 1 1; entra na parte do incremento: i agora é 2; vai na segunda parte do incremento: imprime i, que é 2. verifica se i < 2, como i é igual a 2, a condição é falsa e o loop acaba.

Consegui explicar bem? Caso não, nos avisa que tento de outra forma. Abs.

Enquanto eu digitava o Celso respondeu. Rs.

Bem, espero que tenhamos ajudado. Qualquer coisa nos avise. :)

Abs.

Consegui entender sim, muito obrigada Celso e Lucas.