Duvida basica de Incrementacao

Galera, duvida basica, por favor ajudem…

se no codigo abaixo eu colocar o valor de i como i++ o resultado da na mesma… no caso o incrementador nao influencia em nada??

for(int i=0; i < 3; ++i){
		System.out.print(i + "..");
	}

Nesse caso não

Tenta assim

for(int i=0; i < 3;){
		System.out.print(++i + "..");
	}

e assim

for(int i=0; i < 3;){
		System.out.print( i++ + "..");
	}

Veja a diferença.

[quote=gumatias]Galera, duvida basica, por favor ajudem…

se no codigo abaixo eu colocar o valor de i como i++ o resultado da na mesma… no caso o incrementador nao influencia em nada??

for(int i=0; i &lt; 3; ++i){
		System.out.print(i + &quot;..&quot;);
	}

[/quote]

Nesse caso específico, tanto faz se você usar "++i" ou "i++". Eu, por exemplo, costumo usar ++i, conforme você pode checar nos programas que posto.

É que seu comando "for" é equivalente a este "while":

{
    int i = 0; /* primeira parte do for */
    while (i &lt; 3 /* segunda parte do for*/) {
        System.out.print (i + &quot;..&quot;);
        ++i; /* terceira parte do for */
    }
}

Quando o Kernighan e o Ritchie inventaram esse tipo de comando "for" na linguagem C, tentaram simplesmente deixá-lo "genérico", ou seja, o "for" é simplesmente uma forma simplificada de escrever o "while".
Ele é de longe muito mais complicado e esquisito que o "for" de outras linguagens (no Fortran o comando equivalente é "DO I=0,2", e no Pascal é "for i := 0 to 2 do"), mas é assim que foi projetado.

Vixi…eu sempre achei que o pré-incremento era mais rápido que o pós-incremento. Vi um benchmarking da IBM comentando que os dois tem a mesma performance.

Eles testaram o pós primeiro e ele foi mais rápido. Depois, inverteram a ordem do teste(pré primeiro) e o pré foi mais rápido. Então não tem como falar quem tem melhor performance analisando somente a estrutura do incrementador.

A única diferença que eu vejo então é a ordem mesmo, e isso influencia na saída:

public class Test {
  public static void main(String[] args) {
    int pre = 1;
    int post = 1;
    System.out.println("++pre  = " + (++pre));
    System.out.println("post++ = " + (post++));
  }

//saida
++pre  = 2
post++ = 1