Per il mio modo di pensare, un ciclo for viene utilizzato per iterare su un intervallo noto o determinabile.
String[] names = //something;
for ( int i = 0; i < names.length; i++ ) { //do stuff }
che è equivalente (ambito di i da parte) a:
String[] names = //something;
int i = 0;
while (i < names.length )
{
// do stuff
i++;
}
In altre parole, il ciclo for
è semplicemente uno zucchero sintattico (molto utile) per un costrutto while
comunemente utilizzato.
Tuttavia, sto visualizzando molti costrutti for(;;)
sul web che sono funzionalmente equivalenti a while(true)
Qual è il ragionamento per questo? Perché il loop infinito deve essere preferito sull'infinito ciclo while?
// Ho visto persino un libro di testo java che non usava affatto i loop! Conducendo a costrutti mostruosi come:
String input = getInput();
for( ; !inputIsValid(input) ; )
{
//redo;
}