HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Оператор<strong>break</strong>применяется для прерывания текущей итерации (break (broke, broken) - ломать, разрывать). С его помощью происходит выход из блока фигурных скобок оператора цикла либо оператора switch с дальнейшей передачей управления следующему оператору. Если задействуются вложенные операторы,<strong>break</strong>обеспечивает выход из самого внутреннего оператора.</p>
1 <p>Оператор<strong>break</strong>применяется для прерывания текущей итерации (break (broke, broken) - ломать, разрывать). С его помощью происходит выход из блока фигурных скобок оператора цикла либо оператора switch с дальнейшей передачей управления следующему оператору. Если задействуются вложенные операторы,<strong>break</strong>обеспечивает выход из самого внутреннего оператора.</p>
2 <p>Общая форма оператора break (брейк) выглядит следующим образом:</p>
2 <p>Общая форма оператора break (брейк) выглядит следующим образом:</p>
3 <h2>Оператор break с меткой. Специфика использования. Ключевое слово goto</h2>
3 <h2>Оператор break с меткой. Специфика использования. Ключевое слово goto</h2>
4 <p>На практике оператор break с меткой применяется в качестве аналога оператора<strong>goto</strong>, который есть во многих языках программирования. В Java такой оператор не используется, однако само ключевое слово goto зарезервировано.</p>
4 <p>На практике оператор break с меткой применяется в качестве аналога оператора<strong>goto</strong>, который есть во многих языках программирования. В Java такой оператор не используется, однако само ключевое слово goto зарезервировано.</p>
5 <p>В общем виде<strong>оператор break</strong>выглядит так:</p>
5 <p>В общем виде<strong>оператор break</strong>выглядит так:</p>
6 <p>Здесь<strong>labelName</strong>- не что иное, как имя метки, соответствующее кодовому блоку. Под кодовым блоком понимается набор операторов, которые взяты в фигурные скобки { }.</p>
6 <p>Здесь<strong>labelName</strong>- не что иное, как имя метки, соответствующее кодовому блоку. Под кодовым блоком понимается набор операторов, которые взяты в фигурные скобки { }.</p>
7 <p>Когда присутствует оператор break с меткой, осуществляется переход к метке для её реализации в программе.</p>
7 <p>Когда присутствует оператор break с меткой, осуществляется переход к метке для её реализации в программе.</p>
8 <p>Объявление:</p>
8 <p>Объявление:</p>
9 labelName: { // последовательность операторов // ... }<h2>В каких операторах используют оператор break?</h2>
9 labelName: { // последовательность операторов // ... }<h2>В каких операторах используют оператор break?</h2>
10 <p><strong>Оператор break</strong>подходит для применения в операторе switch и во всех операторах цикла. Иными словами, break нельзя использовать за пределами цикла либо оператора switch.</p>
10 <p><strong>Оператор break</strong>подходит для применения в операторе switch и во всех операторах цикла. Иными словами, break нельзя использовать за пределами цикла либо оператора switch.</p>
11 <h2>Оператор continue. Общая форма и особенности применения</h2>
11 <h2>Оператор continue. Общая форма и особенности применения</h2>
12 <p>Оператор continue используется в циклах, обеспечивая переход в цикле к следующей итерации. Общая форма оператора выглядит соответствующим образом:</p>
12 <p>Оператор continue используется в циклах, обеспечивая переход в цикле к следующей итерации. Общая форма оператора выглядит соответствующим образом:</p>
13 <p>Как правило, continue вызывается в том случае, если достигнуто некоторое условие в теле цикла.</p>
13 <p>Как правило, continue вызывается в том случае, если достигнуто некоторое условие в теле цикла.</p>
14 <h2>Оператор continue с меткой</h2>
14 <h2>Оператор continue с меткой</h2>
15 <p>Как и в случае с break, возможна реализация<strong>continue с меткой</strong>. В этом случае форма оператора будет выглядеть так:</p>
15 <p>Как и в случае с break, возможна реализация<strong>continue с меткой</strong>. В этом случае форма оператора будет выглядеть так:</p>
16 <p>Здесь<strong>labelName</strong>- это имя метки, соответствующей циклу, в котором как раз таки и реализован вызов посредством оператора continue.</p>
16 <p>Здесь<strong>labelName</strong>- это имя метки, соответствующей циклу, в котором как раз таки и реализован вызов посредством оператора continue.</p>
17 <h2>Когда применяют оператор continue?</h2>
17 <h2>Когда применяют оператор continue?</h2>
18 <p>Оператор используют исключительно в циклах, то есть continue нельзя применять за их пределами.</p>
18 <p>Оператор используют исключительно в циклах, то есть continue нельзя применять за их пределами.</p>
19 <h2>Преимущества использования операторов continue и break в программах</h2>
19 <h2>Преимущества использования операторов continue и break в программах</h2>
20 <p>Применение break и continue имеет следующие плюсы: - при выполнении циклического процесса отпадает необходимость осуществлять излишние итерации, если нужный результат достигнут либо искомое значение уже найдено. Всё это повышает скорость работы программного обеспечения; - в случае преждевременного прекращения циклического процесса структура кода не искажается.</p>
20 <p>Применение break и continue имеет следующие плюсы: - при выполнении циклического процесса отпадает необходимость осуществлять излишние итерации, если нужный результат достигнут либо искомое значение уже найдено. Всё это повышает скорость работы программного обеспечения; - в случае преждевременного прекращения циклического процесса структура кода не искажается.</p>
21 <h2>Каковы отличия между break и continue при наличии метки?</h2>
21 <h2>Каковы отличия между break и continue при наличии метки?</h2>
22 <p>Операторы<strong>continue/break</strong>с меткой используются в том случае, если в программе присутствуют вложенные циклы. При этом break с меткой обеспечивает полный выход изо всех вложенных циклов. А continue с меткой выходит из текущего вложенного цикла с последующим переходом к очередной итерации внешнего цикла.</p>
22 <p>Операторы<strong>continue/break</strong>с меткой используются в том случае, если в программе присутствуют вложенные циклы. При этом break с меткой обеспечивает полный выход изо всех вложенных циклов. А continue с меткой выходит из текущего вложенного цикла с последующим переходом к очередной итерации внешнего цикла.</p>
23 <h2>Примеры решения задач с break</h2>
23 <h2>Примеры решения задач с break</h2>
24 <p><strong>Пример 1</strong>. Давайте определим, есть ли отрицательное число в одномерном массиве:</p>
24 <p><strong>Пример 1</strong>. Давайте определим, есть ли отрицательное число в одномерном массиве:</p>
25 int A[] = { 3, 5, -7, 20, 39, 12 }; boolean f_is = false; for (int i=0; i&lt;A.length; i++) if (A[i]&lt;0) // присутствует ли отрицательное число в нашем массиве? { f_is = true; // если оно там есть, то решение найдено break; // выходим из цикла, так как последующее его выполнение не имеет смысла } if (f_is) System.out.println("Да, в одномерном массиве есть отрицательное число."); else System.out.println("Отрицательное число отсутствует.");<p><strong>Пример 2</strong>. Давайте найдём, есть ли заданное число n в 2-мерном массиве, размер которого 2 х 3. Здесь break вызывается<strong>дважды</strong>: 1) когда требуется выйти из внутреннего цикла, в котором переменная j является итератором; 2) когда нужно покинуть внешний цикл, где итератором является переменная i.</p>
25 int A[] = { 3, 5, -7, 20, 39, 12 }; boolean f_is = false; for (int i=0; i&lt;A.length; i++) if (A[i]&lt;0) // присутствует ли отрицательное число в нашем массиве? { f_is = true; // если оно там есть, то решение найдено break; // выходим из цикла, так как последующее его выполнение не имеет смысла } if (f_is) System.out.println("Да, в одномерном массиве есть отрицательное число."); else System.out.println("Отрицательное число отсутствует.");<p><strong>Пример 2</strong>. Давайте найдём, есть ли заданное число n в 2-мерном массиве, размер которого 2 х 3. Здесь break вызывается<strong>дважды</strong>: 1) когда требуется выйти из внутреннего цикла, в котором переменная j является итератором; 2) когда нужно покинуть внешний цикл, где итератором является переменная i.</p>
26 int A[][] = { { 3, 5, -3 }, { 2, 8, 0 } }; boolean f_is = false; int n = 5; for (int i=0; i&lt;A.length; i++) { for (int j=0; j&lt;A[i].length; j++) if (A[i][j]==n) { f_is = true; // когда число найдено, выходим из внутреннего цикла break; // дальнейшее выполнение бессмысленно } if (f_is) break; // выходим из внешнего цикла } if (f_is) System.out.println("Да, число есть в данном массиве."); else System.out.println("Нет, число отсутствует.");<p>Очевидно, что если наш 2-мерный массив<strong>будет огромным</strong>по размеру, использование break повысит скорость выполнения циклического процесса.</p>
26 int A[][] = { { 3, 5, -3 }, { 2, 8, 0 } }; boolean f_is = false; int n = 5; for (int i=0; i&lt;A.length; i++) { for (int j=0; j&lt;A[i].length; j++) if (A[i][j]==n) { f_is = true; // когда число найдено, выходим из внутреннего цикла break; // дальнейшее выполнение бессмысленно } if (f_is) break; // выходим из внешнего цикла } if (f_is) System.out.println("Да, число есть в данном массиве."); else System.out.println("Нет, число отсутствует.");<p>Очевидно, что если наш 2-мерный массив<strong>будет огромным</strong>по размеру, использование break повысит скорость выполнения циклического процесса.</p>
27 <p><strong>Пример 3</strong>. Рассмотрим работу break с меткой. Здесь break работает так же, как и goto в других языках программирования. Как мы уже говорили, в Java это ключевое слово зарезервировано, однако вместо goto применяется оператор break с меткой и рядом ограничений.</p>
27 <p><strong>Пример 3</strong>. Рассмотрим работу break с меткой. Здесь break работает так же, как и goto в других языках программирования. Как мы уже говорили, в Java это ключевое слово зарезервировано, однако вместо goto применяется оператор break с меткой и рядом ограничений.</p>
28 <p>Итак, задан 2-мерный массив целых чисел. Давайте определим, есть ли в нём отрицательные элементы:</p>
28 <p>Итак, задан 2-мерный массив целых чисел. Давайте определим, есть ли в нём отрицательные элементы:</p>
29 // 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&lt;A.length; i++) for (int j=0; j&lt;A[i].length; j++) { k++; if (A[i][j]&lt;0) { f_is = true; break M1; // завершаем цикл, переходим к следующему оператору // continue M1; - команда для перехода к следующей итерации внешнего цикла (счетчик i) } } if (f_is) System.out.println("В массиве A есть положительные элементы."); else System.out.println("Положительных элементов нет");<p>В нашем случае перебор всех элементов 2-мерного массива производится в 2-х вложенных циклах. При этом перед вызовом циклов помещена метка M1. Если же в цикле нижнего уровня (счетчик j) встречается команда break M1, то производится выход с обоих циклов с последующим переходом к очередному оператору программы:</p>
29 // 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&lt;A.length; i++) for (int j=0; j&lt;A[i].length; j++) { k++; if (A[i][j]&lt;0) { f_is = true; break M1; // завершаем цикл, переходим к следующему оператору // continue M1; - команда для перехода к следующей итерации внешнего цикла (счетчик i) } } if (f_is) System.out.println("В массиве A есть положительные элементы."); else System.out.println("Положительных элементов нет");<p>В нашем случае перебор всех элементов 2-мерного массива производится в 2-х вложенных циклах. При этом перед вызовом циклов помещена метка M1. Если же в цикле нижнего уровня (счетчик j) встречается команда break M1, то производится выход с обоих циклов с последующим переходом к очередному оператору программы:</p>
30 ... if (f_is) System.out.println("В массиве A есть положительные элементы."); else System.out.println("В массиве A положительных элементов нет");<p>А вот если M1 разместить непосредственно перед оператором if:</p>
30 ... if (f_is) System.out.println("В массиве A есть положительные элементы."); else System.out.println("В массиве A положительных элементов нет");<p>А вот если M1 разместить непосредственно перед оператором if:</p>
31 ... M1: if (f_is) System.out.println("Есть положительные элементы."); else System.out.println("Положительных элементов нет");<p>То компилятор в Java выдаст ошибку:</p>
31 ... M1: if (f_is) System.out.println("Есть положительные элементы."); else System.out.println("Положительных элементов нет");<p>То компилятор в Java выдаст ошибку:</p>
32 Unresolved compilation problem: The label M1 is missing<p>А всё потому, что метка здесь может размещаться лишь перед тем циклом, в котором используется.</p>
32 Unresolved compilation problem: The label M1 is missing<p>А всё потому, что метка здесь может размещаться лишь перед тем циклом, в котором используется.</p>
33  
33