Zagnieżdżona pętla C ++ (z przykładami)

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 1do wierszy.

Pętla wewnętrzna wykonuje iterację z 1kolumn 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, 2tj. 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, continueinstrukcja pomija tę iterację pętli wewnętrznej.

Interesujące artykuły...