In diesem Tutorial lernen wir anhand von Beispielen verschachtelte Schleifen in C ++ kennen. Wir werden auch etwas über Pause lernen und in Nested Loop weitermachen.
Eine Schleife innerhalb einer anderen Schleife wird als verschachtelte Schleife bezeichnet. Nehmen wir ein Beispiel,
Angenommen, wir möchten jeden Wochentag 3 Wochen lang durchlaufen.
Um dies zu erreichen, können wir eine Schleife erstellen, die dreimal (3 Wochen) wiederholt wird. Und innerhalb der Schleife können wir eine weitere Schleife erstellen, die 7 Mal (7 Tage) wiederholt wird. So können wir verschachtelte Schleifen verwenden.
Beispiel: Verschachtelt für Schleife
// C++ program to display 7 days of 3 weeks #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( cout << " Day:" << j << endl; ) ) return 0; )
Ausgabe
Woche: 1 Tag: 1 Tag: 2 Tag: 3… Woche: 2 Tag: 1 Tag: 2 Tag: 3 ……
Auf ähnliche Weise können wir verschachtelte Schleifen mit while und do … while erstellen.
Beispiel: Anzeigen eines Musters
// C++ program to display a pattern // with 5 rows and 3 columns #include using namespace std; int main() ( int rows = 5; int columns = 3; for (int i = 1; i <= rows; ++i) ( for (int j = 1; j <= columns; ++j) ( cout << "* "; ) cout << endl; ) return 0; )
Ausgabe
* * * * * * * * * * * * * * * *
In diesem Programm iteriert die äußere Schleife von 1
zu Zeilen.
Die innere Schleife iteriert von 1
zu Spalten. Innerhalb der inneren Schleife drucken wir das Zeichen '*'
.
brechen Sie und setzen Sie Inside Nested Loops fort
Wenn wir eine break-Anweisung innerhalb der inneren Schleife verwenden, wird die innere Schleife beendet, nicht jedoch die äußere Schleife. Beispielsweise,
Beispiel: Unterbrechen Sie verschachtelte Schleifen
#include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) ) )
Ausgabe
Woche: 1 Tag: 1 Tag: 2… Woche: 2 Woche: 3 Tag: 1 Tag: 2…
Dieses Programm führt die innere Schleife nicht aus, wenn der Wert von i ist, 2
dh es werden nicht die Tage der 2. Woche gedruckt. Die äußere Schleife, die die Wochen druckt, bleibt davon unberührt.
Wenn wir eine continue-Anweisung innerhalb der inneren Schleife verwenden, wird in ähnlicher Weise nur die aktuelle Iteration der inneren Schleife übersprungen. Die äußere Schleife bleibt unberührt. Beispielsweise,
Beispiel: Fahren Sie in verschachtelten Schleifen fort
#include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // continue if the day is an odd number if (j % 2 != 0) ( continue; ) cout << " Day:" << j << endl; ) ) )
Ausgabe
Woche: 1 Tag: 2 Tag: 4 Tag: 6 Woche: 2 Tag: 2 Tag: 4 Tag: 6 Woche: 3 Tag: 2 Tag: 4 Tag: 6
Dieses Programm druckt nur die Tage, die gerade sind.
Immer wenn die days_in_week ungerade ist, continue
überspringt die Anweisung diese Iteration der inneren Schleife.