for(;;) - Was ist das???
-
Wie der Titel schon andeutet möchte ich wissen was die Konstruktion
for(;;) { }macht.
Danke und Grüße ans Forum
DipplInsch
-
Eine endlosschleife
BR
Vinzenz
-
Um es auführlicher zu machen: alle Ausdrücke in
for(init;bedingung;update)...können weggelassen werden (nur die Semikolons sind notwendig) - in dem Fall wird aus 'init' und 'update' eine no-op und aus 'bedingung' ein true, wodurch die Schleife endlos läuft (solange dort kein break/return etwas dagegen unternimmt).
-
glaub korrekterweise muss man sagen, dass "die bedingung nicht unwahr wird". im gegensatz zu anderen schleifen wertet for bool'sche abbruchbedingungen nur negativ aus.
while(somethingIsTrue) ...
for(; somethingIsNotTrue ; ) ...
-
thordk schrieb:
glaub korrekterweise muss man sagen, dass "die bedingung nicht unwahr wird". im gegensatz zu anderen schleifen wertet for bool'sche abbruchbedingungen nur negativ aus.
Nein, auch for() läuft dann weiter, wenn die Bedingung wahr ist (genau wie die while()-Schleife).
-
(kT)
-
im gegensatz zu for funktioniert while aber nicht gänzlich ohne bedingung. while erwartet immer eine bedingung.
-
Naja... keine Bedingung bedeutet für 'for' implizit 'wahr'. For erwartet auch eine Bedingung nur muss die nicht angegeben werden.
-
Vielleicht noch eine Bemerkung zur Lesbarkeit von 'while (true)' versus 'for (; ;)': Stroustrup u.a. sind der Meinung, dass sich 'for (; ; )' als "forever" lesen lässt und daher lesbarer ist. in gewisser Weise ist da sogar etwas dran, man kann das wiederholte Semikolon visuell nämlich gut als die wiederholten "e"s in "ever" interpretieren. Sogar die Positionen im Wort stimmen, wenn die Leerzeichen nach den Semikola für beliebige Buchstaben stehen ("v" und "r" respektive).