In diesem Artikel werden wir die Unterschiede zwischen "while" -Schleife und "do-while" -Schleife diskutieren.
Vergleichstabelle
Basis zum Vergleich | während | mache es |
---|---|---|
Generelle Form | while (Bedingung) { Aussagen; // Körper der Schleife } | tun{ . Aussagen; // Körper der Schleife. . } while (Bedingung); |
Zustand kontrollieren | In der "while" -Schleife erscheint der Steuerungszustand am Anfang der Schleife. | In der "do-while" -Schleife erscheint die Regelbedingung am Ende der Schleife. |
Iterationen | Die Iterationen treten nicht auf, wenn die Bedingung bei der ersten Iteration falsch erscheint. | Die Iteration tritt mindestens einmal auf, selbst wenn die Bedingung bei der ersten Iteration falsch ist. |
Definition von while-Schleife
Die while-Schleife ist die grundlegendste in C ++ und Java verfügbare Schleife. Die Funktion einer while-Schleife ist in C ++ und Java ähnlich. Die allgemeine Form der while-Schleife lautet:
while (Bedingung) {Anweisungen; // body of loop}
Die while-Schleife prüft zuerst die Bedingung. Wenn die Bedingung wahr ist, wird sie wiederholt, bis die Bedingung falsch ist. Die Bedingung in while-Schleife kann ein beliebiger boolescher Ausdruck sein. Wenn expression einen Wert ungleich Null zurückgibt, ist die Bedingung "true" und wenn ein Ausdruck einen Nullwert zurückgibt, wird die Bedingung "false". Wenn die Bedingung wahr wird, durchläuft die Schleife sich selbst und wenn die Bedingung falsch wird, geht die Steuerung zur nächsten Zeile des Codes über, der unmittelbar von der Schleife gefolgt wird.
Die Anweisungen oder der Rumpf der Schleife können entweder eine leere Anweisung oder eine einzelne Anweisung oder ein Anweisungsblock sein.
Lassen Sie uns die Funktionsweise einer while-Schleife besprechen. Im folgenden Beispiel wird der Code von 1 bis 10 gedruckt.
// Beispiel ist in Java. class while {public static void main (args []) {int n = 0; während (n <= 10) {n ++; system.out.println ("n =" + n); }}} // Ausgabe n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Hier ist der Anfangswert von 'n' 0, wodurch die Bedingung in while-Schleife wahr wird. Das Steuerelement geht dann in den Rumpf der while-Schleife und der Wert von 'n' wird gemäß der ersten Anweisung im Körper einer while-Schleife inkrementiert. Dann wird der Wert von 'n' gedruckt, und die Steuerung kehrt erneut zur Bedingung einer while-Schleife zurück. Nun ist der Wert von 'n' 1, was wiederum die Bedingung erfüllt, und der Hauptteil der Schleife wird erneut ausgeführt.
Dies wird solange fortgesetzt, bis die Bedingung wahr ist, sobald die Bedingung falsch wird, wird die Schleife beendet. Wie bei der Schleife überprüft auch die while-Schleife zuerst die Bedingung und führt dann den Schleifenkörper aus.
Definition von do-while-Schleife
Wie in der while-Schleife wird der Rumpf der while-Schleife überhaupt nicht ausgeführt, wenn die Steuerungsbedingung nur in der ersten Iteration falsch wird. Die Do-While-Schleife unterscheidet sich jedoch etwas von der While-Schleife. Die do-while-Schleife führt den Körper der Schleife mindestens einmal aus, auch wenn die Bedingung beim ersten Versuch falsch ist.
Die allgemeine Form des Do-while ist wie folgt.
tun{ . Anweisungen // Hauptteil der Schleife. . } while (Bedingung);
In einer do-while-Schleife tritt der Hauptteil der Schleife vor der Steuerungsbedingung auf, und die Bedingungsanweisung befindet sich am Ende der Schleife. Wie in while-Schleife kann auch hier der Rumpf der Schleife leer sein, da sowohl C ++ als auch Java Null-Anweisungen zulassen oder nur eine einzige Anweisung oder ein Anweisungsblock vorhanden sein kann. Die Bedingung ist hier auch ein boolescher Ausdruck, der für alle Werte ungleich Null gilt.
In einer do-while-Schleife erreicht das Steuerelement zuerst die Anweisung im Rumpf einer do-while-Schleife. Die Anweisungen im Rumpf werden zuerst ausgeführt, und dann erreicht das Steuerelement den Bedingungsteil der Schleife. Die Bedingung wird überprüft, und wenn sie wahr ist, wird die Schleife erneut iteriert. Wenn die Bedingung falsch ist, wird die Steuerung unmittelbar nach der Schleife mit der nächsten Zeile fortgesetzt.
Verstehen wir es durch Implementieren des obigen Beispiels in do-while.
// Beispiel ist in Java. class while {public static void main (args []) {int n = 1; do {system.out.println ("n =" + n); n ++; } while (n <10)}} // Ausgabe n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10
Hier ist der Wert von n = 1, den die Steuerung wieder in den Körper der Schleife einfügt, der Wert von 'n' wird gedruckt und dann wird der Wert erhöht. Dann nimmt die Steuerung den Zustand der Do-While-Schleife wieder auf. Die Bedingung ist verifiziert, was für n = 1 wahr ist. Die Schleife wird also wiederholt, bis die Bedingung falsch wird.
Hauptunterschiede zwischen while- und do-while-Schleife
- Die while-Schleife prüft die Bedingung zu Beginn der Schleife, und wenn die Bedingung erfüllt ist, wird die Anweisung innerhalb der Schleife ausgeführt. In der do-while-Schleife wird die Bedingung geprüft, nachdem alle Anweisungen im Hauptteil der Schleife ausgeführt wurden.
- Wenn die Bedingung in einer while-Schleife falsch ist, wird keine einzige Anweisung innerhalb der Schleife ausgeführt, und wenn die Bedingung in der do-while-Schleife falsch ist, wird auch der Rumpf der Schleife mindestens einmal ausgeführt, dann wird die Bedingung getestet.
Fazit:
Die while- und die do-while-Schleife sind die Iterationsanweisung. Wenn Sie dies zuerst wünschen, sollte die Bedingung überprüft werden. Anschließend müssen die Anweisungen innerhalb der Schleife ausgeführt werden. Anschließend wird die while-Schleife verwendet. Wenn Sie die Beendigungsbedingung am Ende der Schleife testen möchten, wird die do-while-Schleife verwendet.