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

В этом руководстве мы узнаем о вложенных циклах в C ++ с помощью примеров. Мы также узнаем о прерывании и продолжении во вложенном цикле.

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

Предположим, мы хотим перебирать каждый день недели в течение 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; )

Вывод

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

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

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

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

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

Пример: разрыв внутри вложенных циклов

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

Вывод

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

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

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

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

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

Вывод

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

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

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

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