Что такое continue в Java?
Оператор continue используется в циклах для пропуска итерации в цикле.
Пример:
int some = 0; // Изначально ноль while(some < 10) < // Работает пока меньше 10 some++; // В каждой итерации увеличиваем на 1 if(some % 2 == 0) // Если четное, то пропускаем число continue; // Пропуск итерации System.out.println(some); // Вывод в консоль >
В примере выше, цикл выводит лишь нечетные числа, а четные пропускает благодаря оператору continue.
В отличии от break, который полностью выходит из цикла, оператор continue лишь пропускает одну итерацию в цикле.
Оператор continue
Оператор continue используется в тех случаях когда требуется, чтобы повторение цикла осуществлялось с более раннего оператора в его теле.
В циклах while и do-while оператор continue вызывает передачу управления непосредственно условному выражению, управляющему циклом. В цикле for управление передается вначале итерационной части цикла for , а затем условному выражению.
Оператор continue следует использовать только в цикле.
В следующем примере выводятся на консоль только нечетные значения. Если значение четное, с помощью оператора continue заканчиваем итерацию цикла досрочно:
public class Continue < public static void main(String[] args) < for (int i = 0; i < 10; i++) < if (i % 2 == 0) < continue; >System.out.print(i + " "); > > >
Оператор continue также может использоваться с меткой. В следующем примере внешний цикл помечен меткой outer . При достижении блока кода continue outer; мы заканчиваем итерацию внешнего цикла. Если бы код был без метки, заканчивалась бы итерация внутреннего цикла.
public 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)); > > System.out.println(); > >
Презентацию с видео можно скачать на Patreon .
Операторы break и continue — что это? Оператор break в Java

Оператор break применяется для прерывания текущей итерации (break (broke, broken) — ломать, разрывать). С его помощью происходит выход из блока фигурных скобок оператора цикла либо оператора switch с дальнейшей передачей управления следующему оператору. Если задействуются вложенные операторы, break обеспечивает выход из самого внутреннего оператора.
Общая форма оператора break (брейк) выглядит следующим образом:
break;Оператор break с меткой. Специфика использования. Ключевое слово goto
На практике оператор break с меткой применяется в качестве аналога оператора goto, который есть во многих языках программирования. В Java такой оператор не используется, однако само ключевое слово goto зарезервировано.
В общем виде оператор break выглядит так:
break labelName;Здесь labelName — не что иное, как имя метки, соответствующее кодовому блоку. Под кодовым блоком понимается набор операторов, которые взяты в фигурные скобки < >.
Когда присутствует оператор break с меткой, осуществляется переход к метке для её реализации в программе.
labelName: < // последовательность операторов // . >В каких операторах используют оператор break?
Оператор break подходит для применения в операторе switch и во всех операторах цикла. Иными словами, break нельзя использовать за пределами цикла либо оператора switch.
Оператор continue. Общая форма и особенности применения
Оператор continue используется в циклах, обеспечивая переход в цикле к следующей итерации. Общая форма оператора выглядит соответствующим образом:
continue;Как правило, continue вызывается в том случае, если достигнуто некоторое условие в теле цикла.
Оператор continue с меткой
Как и в случае с break, возможна реализация continue с меткой. В этом случае форма оператора будет выглядеть так:
continue labelName;Здесь labelName — это имя метки, соответствующей циклу, в котором как раз таки и реализован вызов посредством оператора continue.
Когда применяют оператор continue?
Оператор используют исключительно в циклах, то есть continue нельзя применять за их пределами.
Преимущества использования операторов continue и break в программах
Применение break и continue имеет следующие плюсы: — при выполнении циклического процесса отпадает необходимость осуществлять излишние итерации, если нужный результат достигнут либо искомое значение уже найдено. Всё это повышает скорость работы программного обеспечения; — в случае преждевременного прекращения циклического процесса структура кода не искажается.
Каковы отличия между break и continue при наличии метки?
Операторы continue/break с меткой используются в том случае, если в программе присутствуют вложенные циклы. При этом break с меткой обеспечивает полный выход изо всех вложенных циклов. А continue с меткой выходит из текущего вложенного цикла с последующим переходом к очередной итерации внешнего цикла.
Примеры решения задач с break
Пример 1. Давайте определим, есть ли отрицательное число в одномерном массиве:
int A[] = < 3, 5, -7, 20, 39, 12 >; boolean f_is = false; for (int i=0; i if (f_is) System.out.println("Да, в одномерном массиве есть отрицательное число."); else System.out.println("Отрицательное число отсутствует.");Пример 2. Давайте найдём, есть ли заданное число n в 2-мерном массиве, размер которого 2 х 3. Здесь break вызывается дважды: 1) когда требуется выйти из внутреннего цикла, в котором переменная j является итератором; 2) когда нужно покинуть внешний цикл, где итератором является переменная i.
int A[][] = < < 3, 5, -3 >, < 2, 8, 0 >>; boolean f_is = false; int n = 5; for (int i=0; i if (f_is) break; // выходим из внешнего цикла > if (f_is) System.out.println("Да, число есть в данном массиве."); else System.out.println("Нет, число отсутствует.");Очевидно, что если наш 2-мерный массив будет огромным по размеру, использование break повысит скорость выполнения циклического процесса.
Пример 3. Рассмотрим работу break с меткой. Здесь break работает так же, как и goto в других языках программирования. Как мы уже говорили, в Java это ключевое слово зарезервировано, однако вместо goto применяется оператор break с меткой и рядом ограничений.
Итак, задан 2-мерный массив целых чисел. Давайте определим, есть ли в нём отрицательные элементы:
// break с меткой int[][] A = < < 2, 5, 8, >, < 3, -7, 4 >, < -2, 1, 3 >, < -4, 2, 3 >>; boolean f_is = false; // наша метка с именем M1 M1: for (int i=0; i > if (f_is) System.out.println("В массиве A есть положительные элементы."); else System.out.println("Положительных элементов нет");В нашем случае перебор всех элементов 2-мерного массива производится в 2-х вложенных циклах. При этом перед вызовом циклов помещена метка M1. Если же в цикле нижнего уровня (счетчик j) встречается команда break M1, то производится выход с обоих циклов с последующим переходом к очередному оператору программы:
. if (f_is) System.out.println("В массиве A есть положительные элементы."); else System.out.println("В массиве A положительных элементов нет");А вот если M1 разместить непосредственно перед оператором if:
. M1: if (f_is) System.out.println("Есть положительные элементы."); else System.out.println("Положительных элементов нет");То компилятор в Java выдаст ошибку:
Unresolved compilation problem: The label M1 is missingА всё потому, что метка здесь может размещаться лишь перед тем циклом, в котором используется.
Оператор continue в Java
Статья про оператор перехода continue тесно связана со статей про оператор перехода break. Рекомендуем Вам ознакомиться с обеими статьями.
Оператор continue - это один из операторов перехода. Что такое оператор перехода?
Если Вы уже сталкивались с циклами, то Вы уже знаете, что все они, чаще всего, имеют одинаковые составляющие:
- переменную
- итерации
- условие
- шаги итерации
For, while, do. while выполняют одинаковые функции. Можно сказать, что циклы достаточно простые и предсказуемые - они просто изменяют заданную переменную n-ное количество раз.
Но существуют ключевые слова, которые дают нам больше власти над циклом. Они позволяют нам:
- завершить цикл раньше времени (оператор break)
- проигнорировать часть кода (оператор continue)
В некоторых ситуациях они позволят Вам найти более практичное и элегантное решение поставленных задач. Давайте рассмотрим их подробнее.
Также к операторам перехода относится ключевое слово return, но для его изучения Вам нужно продвинуться чуть-чуть дальше в нашем самоучителе. Поэтому, в этой статье про него рассказывать не будем. Вы узнаете о нем немного позже.
Оператор continue
Слово "continue" с английского переводится как "продолжать". Continue позволяет опустить участок кода и вернуться в начало цикла. Давайте посмотрим на примере - так будет понятнее
Синтаксис
Оператор continue записывается так:
