Сравнительная таблица:
Основа для сравнения | перерыв | Продолжить |
---|---|---|
задача | Завершает выполнение оставшейся итерации цикла. | Он завершает только текущую итерацию цикла. |
Контроль после перерыва / продолжить | «break» возобновляет управление программой до конца цикла, в который входит «break». | «continue» возобновляет управление программой до следующей итерации этого цикла, включающего «continue». |
причины | Это вызывает раннее завершение цикла. | Это вызывает раннее выполнение следующей итерации. |
продолжение | 'break' останавливает продолжение цикла. | 'continue' не останавливает продолжение цикла, оно только останавливает текущую итерацию. |
Другое использование | «break» можно использовать с «switch», «label». | «continue» не может быть выполнен с «switch» и «label». |
Определение разрыва
В C ++ break используется только в двух случаях, т. Е. Во-первых, он используется для «завершения выполнения регистра в операторе switch». Во-вторых, «завершить цикл и возобновить управление до следующего оператора, следующего за циклом». Но в Java break имеет три применения: во-первых, он завершает регистр в коммутаторе, во-вторых, чтобы завершить цикл, содержащий разрыв, и в-третьих, как уже упоминалось ранее, Java не предоставляет оператор goto, но расширенный разрыв формы можно использовать в место "гото".
Давайте посмотрим, каждое использование «перерыв» в деталях.
Сначала используйте, чтобы прекратить выполнение case в switch. Разрыв в переключателе влияет только на тот переключатель, который его охватывает, он не влияет на контур, охватывающий переключатель.
// В контексте C ++. // используя break в switch в контексте C ++. switch (целочисленное выражение) {case 1: ..... ..... break; случай 2: ..... ..... перерыв; случай 3: ..... ..... перерыв; дефолт: ....... ....... }
Во-вторых, принудительно завершить цикл и возобновить выполнение следующего оператора цикла. Как только оператор break встречается внутри цикла, этот цикл немедленно завершается без выполнения оставшегося кода в теле этого цикла, и управление программой достигает следующего оператора, записанного после этого цикла.
// использование break для выхода из цикла в контексте в класс Java main_class {public static void main (string args []) {for (int i = 0; i <100; i ++) {system.out.println ("i:" + я); если (я == 10) перерыва; // как условие внутри элемента if, удовлетворяет элементу управления, выходящему из цикла for. } system.out.println («Обрывы цикла здесь»); }}
break только позволяет программе выйти из цикла, который ее заключает. Если разрыв используется с вложенным циклом, он разрывает только самый внутренний цикл и не влияет на внешний цикл.
Третье использование, используя перерыв как форму goto. Java использует break как форму goto без проблем. Поскольку goto обеспечивает неструктурированное ветвление, которое трудно понять, а также goto запрещает оптимизацию компилятора, Java использует расширенную форму разрыва, которая аналогична goto и помогает выходить более чем из одного блока за раз и возобновлять управление программой для конец помеченного блока, упомянутый с оператором break.
Декларация:
разбить ярлык;
Здесь «метка» - это имя определенного блока кода или идентификатора в Java, и этот помеченный блок должен содержать оператор break. Помеченный оператор break используется для выхода из набора вложенных циклов. Когда встречается помеченный оператор break, элемент управления выходит из помеченного блока, который упоминается в операторе break.
Давайте посмотрим это практически.
// использование break в качестве формы перехода в контексте к классу Java main_class {public static void main (string args []) {boolean t = true; first {second {third {system.out.println ("этот третий блок"); если (т) сломаться первым; } system.out.println («этот второй блок»); } system.out.println («этот первый блок»); } system.out.println («этот основной блок»); }} // output: это третий блок, это основной блок
В этом коде, когда элемент управления достигает третьего блока, выполняется его оператор print, и после этого элемент управления возвращается к оператору 'if', и, когда он выполняется, выполняется оператор break с меткой. Метка, прикрепленная с помощью break, является первой, поэтому управление возобновляется к оператору, записанному после конца блока, то есть в основном блоке, который является оператором print и выполняется.
Определение продолжения
Так как break завершает оставшуюся итерацию цикла и позволяет элементу управления выйти из цикла, то здесь продолжить работает в некоторой степени подобно прерыванию. Оператор continue останавливает выполнение оставшегося кода в цикле для этой текущей итерации и возобновляет управление до следующей итерации этого цикла. Оператор continue пропускает код для текущей итерации и передает управление следующей итерации цикла.
Давайте разберемся с этим на примере.
// использование продолжения в контексте C ++. // выводит четное число до 100. class main_class {public static void main (string args []) {for (int i = 0; i <100; i ++) {if (i% 2! = 0) continue; // продолжить возобновление управления до следующей итерации цикла for system.out.println ("i:" + i); }}}
В вышеприведенной программе, если выполняется оператор if, выполняется оператор continue, который не позволяет выполнить следующий оператор print и возобновить управление до следующей итерации цикла for. Если i = 1, то условие «если» выполнено, и выполняется продолжение, без выполнения оператора print для нечетного значения «i» и, управление возвращается к следующей итерации цикла «для i = 2». Если i = 2, то утверждение «если» не выполняется; continue не выполняется, и оператор print печатает значение 'i', которое является четным.
Ключевые различия между Break и Continue
- По сути, ключевое слово break завершает оставшиеся итерации цикла. С другой стороны, ключевое слово continue завершает только текущую итерацию цикла.
- После выполнения ключевого слова break управление программы выходит из цикла и возвращается к следующему оператору после цикла. В случае ключевого слова continue управление программой возобновляется до следующей итерации цикла.
- Как и на предыдущем шаге, делается вывод, что после выполнения управления прерыванием выхода программы из цикла становится ясно, что разрыв вызывает преждевременное завершение любого цикла. С другой стороны, продолжить только завершить текущую итерацию и вернуться к следующей итерации цикла, тогда мы можем сказать, что продолжение вызывает раннее выполнение следующей итерации цикла.
- Ключевое слово break завершает все оставшиеся итерации после его выполнения, поэтому мы можем сказать, что оно останавливает продолжение цикла, тогда как ключевое слово continue все еще продолжает выполнение цикла.
- Ключевое слово break можно использовать вместе с операторами «switch» и «label», тогда как ключевое слово continue нельзя использовать с «switch» и «label».
Заключение:
Операторы break и continue оба являются оператором jump, который передает управление другой части программы. Если оператор break позволяет элементу управления выйти из цикла, оператор continue позволяет элементу управления перейти к следующей итерации этого цикла.