Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Explicação código

public class TestClass{
public static void main(String args[]){
int i;
int j;
for (i = 0, j = 0 ; j < 1 ; ++j , i++){
System.out.println( i + " " + j );
}
System.out.println( i + " " + j );
}
}
//0 0  
//1 1.

Não entendi do porque do resultado; o J não é pré-incrementado?

3 respostas

O primeiro sysout que vc usa o valor do j antes de passar pelo incremento.

"J" será menor que 1 para apenas a primeira iteração. Então, primeiro ele imprimirá 0, 0. Em seguida, "i" e "J" são incrementados. Como "j" não é menor do que 1 no início do loop, a condição falha e vem fora do laço. Finalmente, ele imprimirá 1,1.

Como assim "j" não é um pré incremento. Ou no for todos se comportam da mesma forma?

solução!

Por conta da execução do for... ele inicializa, verifica a condição, executa o bloco do loop e depois vai para a atualização.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software