Der erste ist der idiomatische Weg; Das erwarten die meisten C-Programmierer. Allerdings sollte ich beachten, dass die meisten Leute auch erwarten,
zu sehen %Vor% Beachten Sie, dass die Schleife bei Null beginnt. Das wird etwas a
mal machen. Wenn Sie eine while
-Schleife schreiben wollen, die einer for
-Schleife entspricht, empfehlen wir Ihnen, diese als for
-Schleife zu schreiben. Wiederum erwarten C-Programmierer dies. Weiterhin ist es als eine for
-Schleife einfacher zu lesen, da alles (Initialisierung, Schleifenbedingung, Ausdruck, der nach jeder Iteration auszuführen ist) alle in einer Zeile sind. Für die while
-Schleife sind sie verteilt und behindern die Lesbarkeit.
Beachten Sie jedoch, dass es Fälle gibt, in denen scheinbar äquivalente for
und while
Schleifen tatsächlich nicht vorhanden sind. Zum Beispiel:
und
%Vor% erscheinen auf den ersten Blick gleichwertig, sind es aber nicht. Die for
-Schleife wird 0--9
skipping 5
auf der Konsole ausgeben, während die while
-Schleife 0--4
auf der Konsole ausgibt und dann eine Endlosschleife eingibt.
Nun, das ist der einfache Fall, nach dem Sie gefragt haben. Was ist mit den komplexeren Fällen, über die Sie nicht gefragt haben? Nun, es hängt wirklich davon ab, aber eine gute Faustregel ist dies: Wenn Sie etwas eine festgelegte vorbestimmte Anzahl von Malen wiederholen wollen, ist eine for
-Schleife im Allgemeinen am besten. Andernfalls verwenden Sie eine while
-Schleife. Dies ist keine feste Regel, aber es ist eine gute Faustregel. Zum Beispiel könnten Sie
aber ich denke, die meisten C-Programmierer würden dies als
schreiben %Vor% Oder, als ein anderes Beispiel, wenn Sie bis zum Ende einer Datei lesen, dann sollten Sie eine while
Schleife verwenden. Also
statt
%Vor% Nun, da ich in religiöses Territorium vordringe, bevorzuge ich while(1)
als den richtigen Weg, um eine unendliche Schleife über for(;;)
zu machen.
Ich hoffe, das hilft.
Es kommt darauf an. Was das Lesen am einfachsten macht, sollte eine Leitlinie IMHO sein. Wenn Sie vorher Grenzen kennen, sollten Sie 'for' verwenden. Weil es in einer Zeile eindeutig sagt, wo die Schleife beginnt, endet sie und wie man von einem Element zum anderen geht.
Stimmen Sie für Dan McG auf - wenn die Schleife eine feste Zählung hat, usw., verwenden Sie für - es ist mehr idiomatisch. Klassische Fälle von jedem:
%Vor%Vs.
%Vor%Außerdem: Wenn du herausfindest, dass du Bedingungen in deinem "for" auslässt, bedenke, wie es wäre, wenn du es so lange nachbilst.
Am Ende des Tages: Gehen Sie zurück und lesen Sie jede Version der Schleife. Welcher fällt Ihnen in Ihrer Absicht mehr als "klar" in der Absicht auf?
Was macht am meisten Sinn in der Situation.
Die for
-Schleife sagt Ihnen, dass es sich höchstwahrscheinlich um eine feste Zählschleife handelt. Beginnend bei 1 endet vor einem.
Die while
-Schleife impliziert keine solche Sache, nur dass sie einmal i >= a
endet (zumindest wenn man oben nur while (i<a){
liest).
Natürlich ist dies keine Regel, und Programmierer tun im Allgemeinen, was sie für richtig halten, aber es macht es einfach, Code zu lesen, ohne dass man zurückgehen muss, um einen Abschnitt zu verstehen.
Tags und Links c for-loop while-loop