Назад Зміст Вперед

Урок 3.5. Вкладені цикли

Вкладені цикли

Існує можливість утворити цикл всередині тіла другого циклу. Такий цикл зветься вкладеним циклом. Вкладений цикл щодо циклу в тіло якого він вкладений буде йменуватися внутрішнім циклом, і навпаки цикл в тілі якого існує вкладений цикл буде йменуватись зовнішнім щодо вкладеного. Всередині вкладеного циклу може бути наступний вкладений цикл, утворюючи наступний рівень вкладеності і так далі. Кількість рівнів вкладеності, як правило, не обмежується.

Повна кількість виконання тіла внутрішнього циклу не перевищує добутку кількості ітерацій внутрішнього і всіх зовнішніх циклів. Наприклад взяв три вкладених один в одного цикли, кожний по 10 ітерацій, отримаємо 10 виконань тіла зовнішнього циклу, 100 для циклу другого рівня і 1000 в найбільш вкладеному циклі.

Одна з проблем, пов’язаних із вкладеними циклами — організація дострокового виходу з них. В багатьох мовах програмування є оператор дострокового завершення циклу, але він, як правило, забезпечує вихід лише з циклу того рівня, звідки викликаний. Виклик його у вкладеному циклі призведе до завершення лиш цього вкладеного циклу, зовнішній цикл продовжить виконання. Проблема може здатися надуманою, але вона дійсно іноді виникає при програмуванні складної обробки даних, коли алгоритм вимагає негайного переривання за певних умов, наявність яких можна перевірити тільки в глибоко вкладеному циклі.

Як і в інших мовах програмування, Java допускає використання вкладених циклів. Наприклад, 

class Nested {
     public static void main(String args[]) {
                int i, j;
                for(i=0; i<10; i++) { 
                      for(j=i; j<10; j++)
                      System.out.print (".");
                      System.out.println();
               }
   }
}

.