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 + "..");
}
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 < 3; ++i){
System.out.print(i + "..");
}
[/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 < 3 /* segunda parte do for*/) {
System.out.print (i + "..");
++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