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

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

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

 // outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )

Здесь мы используем forцикл внутри другого forцикла.

Мы можем использовать вложенный цикл для перебора каждого дня недели в течение 3 недель.

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

Пример 1: Java, вложенная в цикл

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop prints weeks for (int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop prints days for (int j = 1; j <= days; ++j) ( System.out.println(" Day: " + j); ) ) ) )

Вывод

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

В приведенном выше примере внешний цикл повторяется 3 раза и печатает 3 недели. И внутренний цикл повторяется 7 раз и выводит 7 дней.

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

Примечание . Можно использовать один тип цикла внутри тела другого цикла. Например, мы можем поместить forпетлю внутрь whileпетли.

Пример 2: цикл for в Java внутри цикла while

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; int i = 1; // outer loop while (i <= weeks) ( System.out.println("Week: " + i); // inner loop for (int j = 1; j <= days; ++j) ( System.out.println(" Days: " + j); ) ++i; ) ) )

Выход :

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

Здесь вы можете видеть, что результат как в примере 1, так и в примере 2 одинаков.

Пример 3: вложенные циклы Java для создания шаблона

Мы можем использовать вложенный цикл в Java для создания шаблонов, таких как полная пирамида, полупирамида, перевернутая пирамида и так далее.

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

 class Main ( public static void main(String() args) ( int rows = 5; // outer loop for (int i = 1; i <= rows; ++i) ( // inner loop to print the numbers for (int j = 1; j <= i; ++j) ( System.out.print(j + " "); ) System.out.println(""); ) ) )

Вывод

 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

Чтобы узнать больше, посетите программу Java для печати пирамид и узоров.

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

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

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // break inside the inner loop if(i == 2) ( break; ) System.out.println(" Days: " + j); ) ) ) )

Вывод

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

В приведенном выше примере мы использовали оператор break внутри внутреннего forцикла. Здесь программа пропускает цикл, когда i равно 2 .

Следовательно, дни недели 2 не печатаются. Однако внешний цикл, печатающий неделю, не изменяется.

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

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // continue inside the inner loop if(j % 2 != 0) ( continue; ) System.out.println(" Days: " + j); ) ) ) )

Вывод

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

В приведенном выше примере мы использовали оператор continue внутри внутреннего цикла for. Обратите внимание на код,

 if(j % 2 != 0) ( continue; )

Здесь continueоператор выполняется, когда значение j нечетное. Таким образом, программа печатает только те дни, которые являются четными.

Мы видим, что continueоператор затронул только внутренний цикл. Внешний цикл работает без проблем.

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