[RESOLVIDO] Dúvidas com pós e pré incremento no FOR

4 respostas
I

[b]Bom dia pessoal,

Estou com uma dúvida no pós e pré incremento no FOR:

Tenho o FOR com PÓS-INCREMENTO(i++):[/b]

public class ForPosIncremento{

   public static void main(String args[]){

	for (int i = 0; i < 3; i++){
	   
 	   System.out.println("Imprimindo I: " +i);
 	}
   }
}

Saída:
Imprimindo I: 0
Imprimindo I: 1
Imprimindo I: 2

Tenho o FOR com PRÉ-INCREMENTO(++i):

public class ForPreIncremento{

   public static void main(String args[]){

	for (int i = 0; i < 3; ++i){
	   
 	   System.out.println("Imprimindo I: " +i);
 	}
   }
}

Saída:
Imprimindo I: 0
Imprimindo I: 1
Imprimindo I: 2

[b]Rodando os dois programas java, a saída é a mesma.
No pós incremento, entendo que ele usa a variavel i e depois incrementa, então a saída 0 1 2 está certo.

Mas no pré incremento, ele não incrementa e depois mostra? A saída não deveria ser 1 2?

Obrigado pela ajuda.

[/b]

4 Respostas

renamed

Nesse caso não faz diferença porque o incremento do for é isolado, ele sempre vai incrementar e partir para a próxima instrução com o i incrementado. Entretanto, veja esses exemplos:

if (++segundos == 60){ //aqui primeiro ele incrementa depois compara segundos = 0; }

e

if (segundos++ == 60) { // aqui primeiro ele compara depois incrementa segundos = 0; }

ok?

E

De modo geral, sempre decore isto:

for (parte 1; parte 2; parte 3) {
    parte 4;
}

é perfeitamente equivalente a:

{
    parte 1;
    while (parte 2) {
        parte 4; 
        parte 3;
    }
}

Se decorar e entender isso, então você nem precisa perguntar se o “++i” ou o “i++”, nesse contexto em particular, são a mesma coisa ou não.

I

Entendi agora.

Obrigado pessoal.

D

se já sanou sua duvida, coloca [RESOLVIDO] no titulo do tópico…vlw

Criado 13 de julho de 2010
Ultima resposta 13 de jul. de 2010
Respostas 4
Participantes 4