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 forSchleife ist einfach ein (sehr nützlicher) syntaktischer Zucker für ein häufig verwendetes whileKonstrukt.
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;
}
whileund forhier 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 { ... }