Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida com o While

Quando utilizado o while conforme descrito na aula 'Laço com while - Min 3.08' ' ao informar o "System.out.println(contador)" em baixo do contador = contador +1, mesmo a variável contador configurada como < 10 o resultado vai até o 10, porém se for colocada em cima dessa estrutura, o resultado vai até 9. Alguma explicação? OBS: Eclipse Version: 2021-03 (4.19.0) - Build id: 20210312-0638 OBS²: Mesmo utilizando o contador++ a posição do "System.out.println(contador)" também influencia no resultado.

1 resposta
solução!

Oie Victor, tudo bem contigo?

Isso acontece porque o loop vai acontecer enquanto a variável "contador" for menor que 10, o problema é que quando o "contador = 9", o loop ocorre novamente e ai com o "contador++" ele começa a valer 10, e ai se você tiver deixado o "System.out.println(contador)" antes disso, o valor irá sair sendo 9, mas se você deixar depois, ele vai fazer a soma, e o "System.out.println(contador)" vai sair como 10.

Segue a explicação no código:


int contador = 9; // coloquei o contador já sendo igual a 9

        while(contador < 10) { // pelo fato do contador ainda ser menor que 10, o loop vai acontecer
            System.out.println(contador); // o contador ainda é igual a 9, então irá ser printado no console o numero 9
            contador = contador + 1; // é feito a soma de +1, agora o contador vale 10
        }
        // o loop é interrompido já que o contador agora é = 10.
    }

Agora se for desse jeito:

int contador = 9; 

        while(contador < 10) { 
            contador = contador + 1; // agora o contador vale 10
            System.out.println(contador); // contador = 10, sendo assim irá aparecer no console o numero 10

        }
    }

Por isso, nessa situação o contador sempre vai terminar igual a 10, a questão é se você deixar o "System" antes da soma ele vai aparecer como 9, se você deixar depois vai ser como 10.

Espero que agora essa lógica tenha ficado mais clara, qualquer outra dúvida fico a disposição :)

Bons estudos!