1
resposta

contador while

public class TestaWhile {

public static void main(String[] args) {

    int contador = 0;
    while (contador <= 10) {
        System.out.println(contador);
        // contador = contador +1;
        // contador += 1;

        ++contador;
        System.out.println(contador);
    }
}

Minha dúvida é por que que quando o System.out.println(contador) fica dentro da chave ele da o resultado de 1 a 10 dessa maneira: 11 22 33 44 55 66 77 88 99 1010 11 Detalhe, sem repetir o "11" também. Alguém pode me explicar?

Observação já entendi que o sysout fica fora da chave para dar o valor correto e sem repetições, só n sei o motivo.

1 resposta

Oie Bianca, tudo bem contigo?

Isso está acontecendo pois você colocou dois "System.out.println", um no começo do "While" e outro no final. No primeiro loop ele exibe o número "0" e o "1", o 0 é exibido por conta do primeiro "Sysout" e o 1 por conta do segundo, que vem logo após você somar o 1 no contador através do "++contador".

No segundo loop é exibido os números 1 e 2, o 1 por conta do primeiro "Sysout" e o 2 por conta do segundo, que vem logo após você somar o 1 no contador através do "++contador".

Esse processo vai acontecendo até a variável "contador" for igual a 11, que esse seria o último loop. Nesse último loop é exibido os números 10 e 11, o 10 por conta do primeiro "Sysout" e o 11 por conta do segundo, que vem logo após você somar o 1 no contador através do "++contador", e aí no começo do próximo loop por conta da variável "contador" ser igual a 11, e no "While" estar como condição que a variável "contador" deve ser menor ou igual a 10, o While para de executar, e aí acaba sendo exibido só um 11.

Espero ter conseguido ajudar!

Se restar qualquer dúvida estarei por aqui :)