Unterschied zwischen for- und while-Schleife
In C ++ und Java ermöglichen die Iterationsanweisungen for loop, while loop und do-while loop die wiederholte Ausführung des Befehlssatzes, bis die Bedingung wahr ist, und enden, sobald die Bedingung falsch wird. Bedingungen in Iterationsanweisungen können wie in der for-Schleife oder offen wie in der while-Schleife vordefiniert sein.
Es gibt mehrere ‚for‘ -Schleifenvariationen in C ++, die impliziert sind, um die Anwendbarkeit, Leistung und Flexibilität zu erhöhen. Zum Beispiel erlaubt uns die for-Schleife, mehr als eine Variable innerhalb der Schleife zu verwenden, um sie zu steuern, und die Verwendung der Konvergenzfunktion mit ‚for‘ -Schleife. Umgekehrt können wir mit der while-Schleife nicht viele Variationen verwenden, die mit der Standardsyntax verwendet werden müssen.
Es gibt einige wesentliche Unterschiede zwischen for- und while-Schleifen, die anhand einer Vergleichstabelle näher erläutert werden.
Inhalt: für Schleife Vs While-Schleife
- Vergleichstabelle
- Definition
- Hauptunterschiede
- Schlussfolgerung
Vergleichstabelle
Vergleichsbasis | für | während |
---|---|---|
Deklaration | für(Initialisierung; Bedingung; Iteration){ // Körper von ‚for‘ Schleife } |
while ( Bedingung) { Anweisungen; // körper der Schleife } |
Format | Initialisierung, Bedingungsprüfung und Iterationsanweisung werden oben in die Schleife geschrieben. | Nur die Initialisierung und Zustandsprüfung erfolgt am oberen Rand der Schleife. |
Use | Die ‚for‘-Schleife wurde nur verwendet, wenn wir die Anzahl der Iterationen bereits kannten. | Die ‚while‘-Schleife wird nur verwendet, wenn die Anzahl der Iterationen nicht genau bekannt ist. |
Bedingung | Wenn die Bedingung nicht in der ‚for‘ -Schleife angegeben ist, iteriert die Schleife unendlich oft. | Wenn die Bedingung nicht in ‚while‘ Schleife gesetzt wird, liefert es Kompilierungsfehler. |
Initialisierung | In der ‚for‘-Schleife wird die einmal durchgeführte Initialisierung niemals wiederholt. | In while-Schleife Wenn die Initialisierung während der Zustandsprüfung erfolgt, erfolgt die Initialisierung jedes Mal, wenn die Schleife iteriert. |
Iterationsanweisung | In ‚for‘ -Schleife Die Iterationsanweisung wird oben geschrieben und daher erst ausgeführt, nachdem alle Anweisungen in der Schleife ausgeführt wurden. | In der ‚while‘-Schleife kann die Iterationsanweisung an einer beliebigen Stelle in der Schleife geschrieben werden. |
Definition der for-Schleife
In Java gibt es zwei Formen von for-Schleifen. Die erste Form ist „traditionelle“ Form und die zweite ist „for-each“ Form.
Syntax
Die allgemeine Form der traditionellen for Loop-Anweisung.
for (initialization; condition; iteration){//body of for loop}
- Initialisierung: Die Initialisierung der Schleifensteuervariablen der for-Schleife wird nur einmal während der ersten Iteration der Schleife ausgeführt. Hier wird die Schleifensteuervariable initialisiert, manchmal, wenn die Schleifensteuervariable nirgendwo im Programm wieder verwendet wird und nur als Steuervariable der Schleife verwendet wird, wird sie sowohl deklariert als auch in der for-Schleife initialisiert.
- Bedingung: Die Bedingung der ‚for‘-Schleife wird jedes Mal ausgeführt, wenn die Schleife iteriert wird.
- Inkrement und Iteration: Die iteration-Anweisung ist ein Ausdruck, der die Schleifensteuervariable inkrementiert oder dekrementiert.
Wenn die Schleife ausgeführt wird, wird ihre Initialisierungsbedingung zuerst ausgeführt; dann wird der Zustand überprüft. Wenn die Bedingung erfüllt ist, wird der Hauptteil der Schleife ausgeführt, dann wird die Iterationsanweisung ausgeführt. Dann wird die Bedingung erneut überprüft, um zu wissen, ob die Schleife weiter iteriert oder beendet wird.
In Java können die Initialisierungsanweisung und die Iterationsanweisung mehr als eine Anweisung enthalten. In Java ist ein Komma ein Trennzeichen, während in C ++ „Komma“ ein Operator ist, der in jedem gültigen Ausdruck verwendet werden kann.
for-each-Schleife und ihre Syntax
Das Formular „for-each“ ist eine erweiterte for-Schleife. Die allgemeine Form der for-each Schleife ist wie folgt.
for(type iter_variable: collection) statement-block
Hier gibt der „Typ“ den Typ der Iterationsvariablen an, gefolgt von der Iterationsvariablen. Die Iterationsvariable erhält das Element aus der Sammlungsvariablen. Der Typ muss mit dem Typ der Elemente übereinstimmen, die in der Auflistungsvariablen gespeichert sind. Die for-each-Form der for-Schleife automatisiert die Iteration der Schleife vom Anfang bis zum Ende des Zugriffs auf die Werte in sequentieller Reihenfolge.
Beispiel
Es gibt verschiedene Arten von Sammlungen, die mit der for-Schleife verwendet werden. Lassen Sie es uns mit einem Array als Sammlung diskutieren.
public class Main{ public static void main(String args) { int array={10, 20, 30, 40, 50, 60}; int add=0; for( int c: array) { System.out.println( "value in c " + c); add = add+c; } System.out.println("additon of array elements is " +add); }}// outputvalue in c 10value in c 20value in c 30value in c 40value in c 50value in c 60additon of array elements is 210
Hier ist ‚c‘ eine Iterationsvariable; Es empfängt die Werte vom Array nacheinander vom niedrigsten Index zum höchsten Index im Array. Hier iteriert die Schleife, bis alle Elemente des Arrays untersucht sind. Es ist möglich, die Schleife dazwischen mit „break“ zu beenden. Die Änderung der Iterationsvariablen wirkt sich jedoch nicht auf das Array aus, da es sich nur um eine schreibgeschützte Variable handelt.
Definition der while-Schleife
Die while-Schleife ist die grundlegendste Schleife, die in C ++ und Java verfügbar ist. Die Funktionsweise einer while-Schleife ist in C ++ und Java ähnlich.
Syntax
Die Deklaration einer while-Schleife lautet wie folgt
while ( condition) {statements; //body of loop}
Die while-Schleife prüft zunächst die Bedingung und führt dann die Anweisungen aus, bis sich die Bedingung in der while-Schleife als wahr herausstellt. Die Bedingung in der while-Schleife kann ein beliebiger boolescher Ausdruck sein. Wenn ein Ausdruck einen Wert ungleich Null zurückgibt, ist die Bedingung true, und wenn der Ausdruck einen Wert ungleich Null zurückgibt, wird die Bedingung false.
Wenn die Bedingung wahr wird, iteriert sich die Schleife selbst, und wenn die Bedingung falsch wird, geht das Steuerelement zur nächsten Codezeile über, unmittelbar gefolgt von der Schleife. Die Anweisungen oder die Body-Schleife können entweder eine leere Anweisung oder eine einzelne Anweisung oder ein Anweisungsblock sein.
Beispiel
Lassen Sie uns die Funktionsweise einer while-Schleife diskutieren. Im folgenden Beispiel wird der Code von 1 bis 10 gedruckt.
//example is in Java.public class Main{ public static void main (String args) { int n=0; while(n<10) { n++; System.out.println("n=" +n); } }}//outputn=1n=2n=3n=4n=5n=6n=7n=8n=9n=10
Hier ist der Anfangswert von ’n‘ 0, was die Bedingung in der while-Schleife wahr macht. Das Steuerelement tritt dann in den Hauptteil der while-Schleife ein und der Wert von ’n‘ wird gemäß der ersten Anweisung im Hauptteil einer while-Schleife inkrementiert.
Der Wert von ’n‘ wird gedruckt, dann kehrt das Steuerelement in einer while-Schleife zur Bedingung zurück, jetzt ist der Wert von ’n‘ 1, was wiederum die Bedingung erfüllt, und der Schleifenkörper wird erneut ausgeführt. Dies wird fortgesetzt, bis die Bedingung wahr ist, sobald die Bedingung falsch wird, wird die Schleife beendet.
Wie die ‚for‘ -Schleife kann die ‚while‘ -Schleife auch die Steuervariable am oberen Rand der Schleife initialisieren, dh während der Zustandsprüfung.
//for examplewhile((ch = getchar( ) ) != 'A'){System.out.println(" The input alphabet " +ch);}
Hier wird die Steuervariable ‚ch‘ initialisiert und der Zustand der Schleife oben in der Schleife überprüft.
Hinweis
Kann es eine for-Schleife oder eine while-Schleife sein, wenn es nur eine Anweisung im Hauptteil der Schleife gibt, sind die geschweiften Klammern in dieser Bedingung nicht erforderlich.
Hauptunterschiede zwischen for- und while-Schleife
- In der for-Schleife werden Initialisierung, Bedingungsprüfung und Inkrement oder Dekrement der Iterationsvariablen explizit nur in der Syntax einer Schleife durchgeführt. Im Gegensatz dazu können wir in der while-Schleife nur die Bedingung in der Syntax der Schleife initialisieren und überprüfen.
- Wenn wir die Anzahl der Iterationen kennen, die bei der Ausführung einer Schleife auftreten müssen, verwenden wir die for-Schleife. Wenn wir andererseits nicht wissen, wie viele Iterationen in einer Schleife ausgeführt werden müssen, verwenden wir die while-Schleife.
- Wenn Sie die Bedingungsanweisung nicht in die for-Schleife einfügen, führt dies zu einer unendlichen Iteration einer Schleife. Wenn Sie im Gegensatz dazu die condition-Anweisung nicht in die while-Schleife einfügen, führt dies zu einem Kompilierungsfehler.
- Die Initialisierungsanweisung in der Syntax der for-Schleife wird nur einmal am Anfang der Schleife ausgeführt. Wenn umgekehrt die while-Schleife eine Initialisierungsanweisung in ihrer Syntax enthält, wird die Initialisierungsanweisung in der while-Schleife jedes Mal ausgeführt, wenn die Schleife iteriert.
- Die Iterationsanweisung in der for-Schleife wird ausgeführt, nachdem die Body-for-Schleife ausgeführt wurde. Im Gegenteil, die Iterationsanweisung kann an einer beliebigen Stelle im Hauptteil der while-Schleife geschrieben werden, sodass es einige Anweisungen geben kann, die nach der Ausführung der Iterationsanweisung im Hauptteil der while-Schleife ausgeführt werden.
Fazit
Die for-Schleife und die while-Schleife sind beide Iterationsanweisungen, aber beide haben ihre Besonderheiten. Die for-Schleife hat ihre gesamte Deklaration (Initialisierung, Bedingung, Iteration) oben im Hauptteil der Schleife. Nachteilig ist, dass in der while-Schleife nur die Initialisierung und die Bedingung am oberen Rand des Schleifenkörpers stehen und die Iteration an einer beliebigen Stelle im Schleifenkörper geschrieben werden kann.