1
resposta

Porque o valor 11 é exibido?

Galera porque se eu deixar o while assim a saida fica:

Visto que coloquei <=

1
2
3
4
5
6
7
8
9
10
11
public class TesteWhile {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int x = 0;

        while(x <= 10) {

//            x++;
//            x = x + 1;
            x += 1;
            System.out.println(x);
        }
    }

}
1 resposta

Olá Thailan, tudo bem?

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Os valores acima são os 10 possíveis de x que entram no while de acordo com a sua lógica.

Quando o 0 entrar vai fazer o print do 1, quando o 1 entrar vai fazer o print do 2 e assim sucessivamente.

Logo, quando o 10 entrar, vai fazer o print do 11.

Se você não quer que o 11 seja impresso, elabore a lógica assim:

int x = 0;

        while(x < 10) {
            x += 1;
            System.out.println(x);
        }

Agora, quando o x chegar ao valor de 10, ele não entrará no while.

Até mais, Marcus.