For Loop Java

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) ;
	}
}