Перейти к содержимому

Continue java что делает

  • автор:

Что такое 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

Java_Deep_29.5_site-5020-18af08.png

Оператор 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 записывается так:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *