C ++ Nested Lop (z przykładami)

W tym samouczku nauczymy się zagnieżdżonych pętli w C ++. Nauczymy się używać zagnieżdżonych pętli for, while i do… while w programie.

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ć zagnieżdżoną pętlę, aby iterować trzy razy (3 tygodnie). Wewnątrz pętli możemy utworzyć kolejną pętlę, aby iterować 7 razy (7 dni). Na przykład,

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 wykonuje iterację od i == 1do i == rows.

Pętla wewnętrzna wykonuje iterację od j == 1do j == columns. 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,

 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,

 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...