Boa tarde pessoal, tudo certo!?
Eu estava analisando o operador for, e me surgiu uma dúvida, pesquisei bastante, não achei nada explicando de forma clara.
Vamos lá:
for (int count = 0; count <= 10; count++) {
System.out.println(count);
}
Esse código vai imprimir os valores de 0 … 10, até ai, ok.
Minha dúvida é como que funciona o teste da condição (count <= 10):
Quando o count for 10, ele vai efetuar o teste (10 <= 10) isso é verdadeiro, porém não é executado (imprimiria o valor 11).
Após algumas análises, eu concluí que esse teste é feito analisando a count já incrementada, e depois incrementa. Isso está correto? Existe essa explicação em algum lugar?
Obg.
Com o valor 10, a condição count <= 10 retorna true e o loop executa mais uma vez.
Com o valor 11, a condição count <= 10 retorna false e a execução do loop encerra.
Não entendi muito bem a sua dúvida. Você está confuso com a comparação ou com o incremento? Todo o corpo do loop (a linha System.out.println, no caso) é executado com o valor atual da variável (0 a 10). A variável é incrementada quando o loop volta para a linha do for.
Se quer entender o passo a passo, faça um teste de mesa.
Abraço.
1 curtida
Essa é minha dúvida, se o valor for 10 entao é true e deveria executar e imprimir 11, já que incrementa + 1. Está meio confuso pra mim essa parte.
Obg.
O incremento para 11 é feito depois que o corpo do laço termina de executar. Quando chega no System.out, count ainda vale 10. Não tem como imprimir 11.
Abraço.
2 curtidas
E pra comprovar o que @TerraSkilll disse, tente:
class Program {
public static void main (String[] args) {
int i = 0;
for (; i <= 10; i++) {
System.out.println(i);
}
System.out.println(">>> " + i) ;
}
}