Вложенный цикл C ++ (с примерами)

В этом руководстве мы узнаем о вложенных циклах в C ++. Мы научимся использовать вложенные циклы for, while и do… while в программе.

Цикл внутри другого цикла называется вложенным циклом. Возьмем пример,

Предположим, мы хотим перебирать каждый день недели в течение 3 недель.

Для этого мы можем создать вложенный цикл для трехкратного повторения (3 недели). А внутри цикла мы можем создать еще один цикл, который будет повторяться 7 раз (7 дней). Например,

Пример: вложенный цикл

 // 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; )

Вывод

 Неделя: 1 День: 1 День: 2 День: 3… Неделя: 2 День: 1 День: 2 День: 3…… 

Мы можем создавать вложенные циклы с помощью while и do… while аналогичным образом.

Пример: отображение паттерна

 // 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; )

Вывод

 * * * * * * * * * * * * * * * 

В этой программе внешний цикл повторяется от i == 1до i == rows.

Внутренний цикл выполняет итерацию от j == 1до j == columns. Внутри внутреннего цикла мы печатаем символ '*'.

прервать и продолжить внутри вложенных циклов

Когда мы используем оператор break внутри внутреннего цикла, он завершает внутренний цикл, но не внешний. Например,

 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; ) )

Вывод

 Неделя: 1 День: 1 День: 2… Неделя: 2 Неделя: 3 День: 1 День: 2… 

Эта программа не запускает внутренний цикл при значении i, 2т. Е. Не выводит дни второй недели. Внешний цикл, печатающий недели, не изменяется.

Точно так же, когда мы используем оператор continue внутри внутреннего цикла, он пропускает только текущую итерацию внутреннего цикла. Внешний цикл не изменяется. Например,

 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; ) )

Вывод

 Неделя: 1 День: 2 День: 4 День: 6 Неделя: 2 День: 2 День: 4 День: 6 Неделя: 3 День: 2 День: 4 День: 6

Эта программа печатает только те дни, которые четные.

Каждый раз, когда days_in_week нечетный, continueинструкция пропускает эту итерацию внутреннего цикла.

Интересные статьи...