<< ПредыдущаяОглавлениеСледующая >>


6.4. Оператор continue

В некоторых ситуациях возникает потребность досрочно перейти к выполнению следующей итерации, проигнорировав часть операторов тела цикла, еще не выполненных в текущей итерации. В этом случае необходимо сделать переход из текущей точки в конец цикла, т.е. в точку после последнего оператора тела цикла. Для этой цели в Java предусмотрен оператор continue. В случае циклов while и do-while оператор continue приводит к пропуску операторов тела цикла, не выполненных на данной итерации, и к передаче управления на код, проверяющий условие завершения цикла. Оператор continue, стоящий в цикле for, приводит к тому, что управление немедленно передается третьей части заголовка цикла, т.е. коду, который, выполняется на каждой итерации после операторов тела цикла. Ниже приведен пример, в котором оператор continue используется для того, чтобы в каждой строке печатались два числа,

class ContinueDemo {
public static void main(String args[]) {
for (int i=0; i < 10; i++) {
             System.out.print(i + " ");
             if (i % 2 == 0) continue;
             System.out.println("");
      }
}
}

Если индекс четный, цикл продолжается без вывода символа новой строки. Результат выполнения этой программы таков:

0 1
2 3
5 7
8 9

Как и в случае оператора break, в операторе continue можно задавать метку, указывающую, в каком из вложенных циклов вы хотите досрочно прекратить выполнение текущей итерации. Для иллюстрации служит программа, использующая оператор continue с меткой для вывода треугольной таблицы умножения для чисел от 0 до 9:

class ContinueLabel {
public static void main(String args[]) {
outer: for (int i=0; i < 10; i++) {
                   for (int j = 0; j < 10; j++) {
               if(j>i){
                                        System.out.println("");
                                        continue outer;
                     }
                          System.out.print(" " + (i * j));
                     }
}
}}

Оператор continue в этой программе приводит к завершению внутреннего цикла со счетчиком j и переходу к очередной итерации внешнего цикла со счетчиком i. В процессе работы эта программа выводит следующие строки:

0
0 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81

 



<< ПредыдущаяОглавлениеСледующая >>