W tym samouczku dowiemy się o zagnieżdżonych pętlach w C ++ na przykładach. Dowiemy się również o przerwaniu i kontynuacji w zagnieżdżonej pętli.
Pętla w innej pętli nazywana jest pętlą zagnieżdżoną. Weźmy przykład,
Załóżmy, że chcemy przeglądać każdy dzień tygodnia przez 3 tygodnie.
Aby to osiągnąć, możemy utworzyć pętlę do wykonania trzech iteracji (3 tygodnie). Wewnątrz pętli możemy utworzyć kolejną pętlę, aby iterować 7 razy (7 dni). W ten sposób możemy używać zagnieżdżonych pętli.
Przykład: zagnieżdżone dla pętli
// 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; )
Wynik
Tydzień: 1 Dzień: 1 Dzień: 2 Dzień: 3… Tydzień: 2 Dzień: 1 Dzień: 2 Dzień: 3……
W podobny sposób możemy tworzyć pętle zagnieżdżone za pomocą while i do… while.
Przykład: wyświetlanie wzoru
// 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; )
Wynik
* * * * * * * * * * * * * * *
W tym programie zewnętrzna pętla przechodzi od 1
do wierszy.
Pętla wewnętrzna wykonuje iterację z 1
kolumn do. Wewnątrz wewnętrznej pętli drukujemy postać '*'
.
przerwij i kontynuuj wewnątrz zagnieżdżonych pętli
Kiedy używamy instrukcji break wewnątrz wewnętrznej pętli, kończy ona wewnętrzną pętlę, ale nie kończy pętli zewnętrznej. Na przykład,
Przykład: przerwij wewnątrz zagnieżdżonych pętli
#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; ) ) )
Wynik
Tydzień: 1 Dzień: 1 Dzień: 2… Tydzień: 2 Tydzień: 3 Dzień: 1 Dzień: 2…
Ten program nie uruchamia pętli wewnętrznej, gdy wartość i wynosi, 2
tj. Nie wypisuje dni drugiego tygodnia. Zewnętrzna pętla, która drukuje tygodnie, pozostaje nienaruszona.
Podobnie, gdy używamy instrukcji continue wewnątrz pętli wewnętrznej, pomija ona tylko bieżącą iterację pętli wewnętrznej. Zewnętrzna pętla pozostaje nienaruszona. Na przykład,
Przykład: kontynuuj wewnątrz zagnieżdżonych pętli
#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; ) ) )
Wynik
Tydzień: 1 Dzień: 2 Dzień: 4 Dzień: 6 Tydzień: 2 Dzień: 2 Dzień: 4 Dzień: 6 Tydzień: 3 Dzień: 2 Dzień: 4 Dzień: 6
Ten program drukuje tylko te dni, które są parzyste.
Ilekroć dni_w_tygodniu są nieparzyste, continue
instrukcja pomija tę iterację pętli wewnętrznej.