Aeh galera,
alguem sabe se o uso de for( ; ; ) tem alguma vantagem sobre um while( true ), e o que justifica usar uma sintaxe tão obscura como essa.
Obrigado.
Aeh galera,
alguem sabe se o uso de for( ; ; ) tem alguma vantagem sobre um while( true ), e o que justifica usar uma sintaxe tão obscura como essa.
Obrigado.
Não deve ter grande diferenca já que o compilador deve ser espertinho pra otimizar os 2 pra um simples JUMP.
Teoricamente o for é mais lento porque ele faz uma verificação (2o argumento) e uma instrução de passo (3o argumento) enquanto o while só faz 1 verificação.
isso não quer dizer que você tenha que usar somente while. Tome cuidado! :? 
Para um loop infinito normalmente se usa While.
for(; onde ever é uma diretiva de compilador EVER = ;; :?
é coisa de C/C++, já vi muito for(EVER)
pelo menos for(EVER) fica super legal de ler 
Resultados identicos, use aquele que voce preferir.
javap -c NomeDaClasse
public void testFor();
Code:
0: aload_0
1: dup
2: getfield #2; //Field i:I
5: iconst_1
6: iadd
7: putfield #2; //Field i:I
10: goto 0
public void testWhile();
Code:
0: aload_0
1: dup
2: getfield #2; //Field i:I
5: iconst_1
6: iadd
7: putfield #2; //Field i:I
10: goto 0
}
Ou seja, os bytecodes gerados são idênticos.
Agora comparando do ponto de vista de prática de programação, na API do Java encontrei bem mais for(;;) do que while(true), pelo menos nas classes que já pesquisei, como por exemplo as de regexp.