Eu tava fazendo uns teste com pos e pre incrementacao…,e fiquei sem entender uma coisa…
No codigo 1 imprime ate o numero 149;como a pos incrementacao add depois da linha eu achei que iria
imprimir ate o 150 porque a variavel eh adcinada +1 apos a linha de verificacao do for…
Codigo 1
for (int x = 0;x < 150;x++){
System.out.println(x);
}
O que daria no mesmo de usar o codigo abaixo…
Codigo 2
for (int x = 0;x < 150;++x){
System.out.println(x);
}
ele vai parar no 149 porque 149 é menor que 150, quando chegar no 150 ele vai ver que 150 é igual a 150, então se voce quiser imprimir de 1 até 150
faz um
[code]for(int i = 1; i <= 150; i++)
{
System.out.println(i);
}
for (<inicialização>;<teste>;<incremento>){
<código>
}
É traduzido para isso aqui:
<inicialização>
while (<teste>) {
<codigo>
<incremento>
}
Portanto, seus fors são traduzidos para o seguinte:
int x = 0;
while (x < 150) {
System.out.println(x);
x++;
}
int x = 0;
while (x < 150) {
System.out.println(x);
++x;
}
E, como vc pode ver, ambos são iguais. Tanto faz incrementar com x++ ou ++x. Como o incremento só é realizado ao final da instrução, ambos os códigos são equivalentes.
A única diferença é o escopo da variável. Durante a tradução o compilador garante que aquela inicialização só valerá para dentro do for.