In diesem Tutorial lernen wir verschachtelte Schleifen in C ++ kennen. Wir werden lernen, verschachtelte for-, while- und do-while-Schleifen in einem Programm zu verwenden.
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 verschachtelte 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. Beispielsweise,
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 i == 1
bis i == rows
.
Die innere Schleife iteriert von j == 1
bis j == columns
. 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,
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,
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.