Secondo il mio modo di pensare, un ciclo for viene usato 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) a parte:
String[] names = //something;
int i = 0;
while (i < names.length )
{
// do stuff
i++;
}
In altre parole, il for
ciclo è semplicemente uno zucchero sintattico (molto utile) per un while
costrutto comunemente usato .
Tuttavia, sto vedendo molti for(;;)
costrutti sul web che sono funzionalmente equivalenti awhile(true)
Qual è il ragionamento per questo? Perché l'infinito per ciclo dovrebbe essere preferito all'infinito ciclo continuo?
// Ho persino visto un libro di testo Java che non usava per niente mentre scorrevo! Portando a tali mostruosi costrutti come:
String input = getInput();
for( ; !inputIsValid(input) ; )
{
//redo;
}
while
e for
qui e la domanda non cambierebbe. while(true)
e for(;;)
dire la stessa cosa. Ovviamente hai una forte preferenza per while
, altri potrebbero avere una preferenza altrettanto forte per for
. È impossibile dire che uno è più corretto dell'altro.
for(;;)
confuso. È un linguaggio C standard, che documenterai nella sezione 3.5 di K&R (2e). Capisco che tu non mi piace; si dovrebbe capire che gli altri, ovviamente, preferiscono (altra cosa che non avevo mai vede). Potrebbe essere più o meno accettabile in lingue diverse da C; hai taggato questo linguaggio agnostico che diminuisce solo la possibilità di una risposta definitiva. Ancora una volta, ho votato per chiudere perché la Q non è costruttiva; se fossi offeso, mi sarei contrassegnato come offensivo anziché o in aggiunta alla chiusura. Questo è tutto.
wheeeeeeee { ... }