Es ist in der Tat eine Endlosschleife.
Unter der Haube wird der Compiler / Jitter dies (effektiv) zu einer einfachen JMP-Operation optimieren.
Es ist auch effektiv dasselbe wie:
%Vor%(außer dass dies auch weg optimiert ist, da der (wahre) Teil eines while-Ausdrucks normalerweise eine Art Vergleich benötigt, aber in diesem Fall gibt es nichts Vergleichbares. Einfach weiterschleifen!)
Ja, das ist eine Endlosschleife. Sie können einen der drei Ausdrücke auslassen, obwohl es meiner Erfahrung nach entweder der erste oder alle drei sind.
Es ist eine unendliche Schleife. Effektiv, es ist das gleiche wie folgt:
%Vor% for (; ;) { }
ist Endlosschleife, Sie sind richtig.
Wenn Sie es verwenden möchten, müssen Sie eine Bedingung in Ihren Schleifenkörper einfügen, damit sie aus der Schleife austreten kann.
%Vor% Es gibt keine Voreinstellungen für den ersten und dritten Teil (sie haben standardmäßig nichts und es würde funktionieren). Der Standardwert für bedingten Ausdruck ist true
, wodurch for(;;)
effektiv zu einer Endlosschleife wird. (Wenn der Standardwert false
wäre, wäre es nutzlos gewesen, solch ein Konstrukt zu haben).
Wie in C und C ++ können Sie alle drei oder alle drei weglassen.
Microsofts C # Programmer's Reference sagt:
%Vor%Alle Ausdrücke der for-Anweisung sind optional; Zum Beispiel wird die folgende Anweisung verwendet, um eine Endlosschleife zu schreiben: