Meines Erachtens wird eine for-Schleife verwendet, um einen bekannten oder bestimmbaren Bereich zu durchlaufen.
String[] names = //something;
for ( int i = 0; i < names.length; i++ ) { //do stuff }
Das ist äquivalent (Umfang von i beiseite) zu:
String[] names = //something;
int i = 0;
while (i < names.length )
{
// do stuff
i++;
}
Mit anderen Worten, die for
Schleife ist einfach ein (sehr nützlicher) syntaktischer Zucker für ein häufig verwendetes while
Konstrukt.
Ich sehe jedoch viele for(;;)
Konstrukte im Web, die funktional äquivalent zu sindwhile(true)
Was ist die Begründung dafür? Warum sollte die Endlosschleife der Endlosschleife while vorgezogen werden?
// Ich habe sogar ein Java-Lehrbuch gesehen, das überhaupt keine while-Schleifen verwendet hat! Dies führt zu solchen monströsen Konstrukten wie:
String input = getInput();
for( ; !inputIsValid(input) ; )
{
//redo;
}
while
und for
hier und die Frage würde sich nicht ändern. while(true)
und for(;;)
meine das Gleiche. Sie haben offensichtlich eine starke Vorliebe für while
, andere mögen eine ebenso starke Vorliebe für haben for
. Es ist unmöglich zu sagen, dass einer korrekter ist als der andere.
for(;;)
verwirrend. Es ist eine Standard-C-Sprache, die Sie in Abschnitt 3.5 von K & R (2e) dokumentiert haben. Ich verstehe, dass es dir nicht gefällt. Sie sollten verstehen, dass andere es offensichtlich bevorzugen (sonst würden Sie es nie sehen). Es kann in anderen Sprachen als C mehr oder weniger akzeptabel sein; Sie haben diesen Sprachunabhängigen markiert, was die Möglichkeit einer endgültigen Antwort nur verringert. Auch hier stimmte ich zu schließen , weil die Q nicht konstruktiv ist; Wenn ich beleidigt gewesen wäre, hätte ich statt oder zusätzlich zum Schließen als beleidigend gekennzeichnet. Das ist alles.
wheeeeeeee { ... }