Как выйти из цикла java

Управление потоком Java: инструкции break и continue

Условные операторы и циклы являются очень важным инструментом в программировании. Существует не так много вещей, которые мы могли бы сделать с кодом, который может выполняться только построчно.

Вот что означает “управление потоком” – руководство выполнением нашей программы, вместо того, чтобы позволять ей выполняться построчно независимо от каких-либо внутренних или внешних факторов. Каждый язык программирования поддерживает ту или иную форму управления потоком, если не явно с помощью if s и для s или аналогичных операторов – тогда он неявно предоставляет нам инструменты для создания таких конструкций, т. Е. Языки программирования низкого уровня обычно достигают того, что влияет на множество команд go-to .

Циклы были концепцией, используемой задолго до того, как компьютерное программирование вообще стало чем – то, но первым человеком , использовавшим программный цикл, была Ада Лавлейс, широко известная под своей девичьей фамилией Байрон, при вычислении чисел Бернулли , еще в 19 веке.

В Java существует несколько способов управления потоком кода:

  • утверждения if и if-else
  • операторы переключения
  • операторы while и do-while
  • для и улучшено для заявлений
  • прервите и продолжите выступления

перерыв

Оператор break является одним из “операторов перехода” Java, поскольку он переносит выполнение кода в другую часть кода. Мы уже видели ключевое слово break , используемое в операторе switch . Мы вернемся к нему здесь, наряду с другими вариантами использования:

  • Его можно использовать для остановки выполнения случая switch оператора, вместо того, чтобы позволять ему продолжать выполнение кода и для следующих случаев
  • Его можно использовать для выхода из цикла до того, как он завершит все свои итерации, или как форму выхода из целенаправленно созданных бесконечных циклов
  • Его можно использовать в качестве приемлемой формы оператора “переход”, когда у нас есть несколько вложенных циклов

Первые два относительно похожи, так как оба используются для преждевременного завершения выполнения одного или нескольких блоков кода:

Как мы видим, цикл for выполнялся как обычно, пока не столкнулся с оператором break , после чего Java прекратила выполнение цикла и продолжила выполнение в первой строке после цикла for .

Вот еще один пример:

Этот цикл будет продолжать спрашивать пользователя, хочет ли он выйти из цикла , пока он не ответит соответствующими символами, где мы выходим из цикла, используя break , или завершаем программу с помощью Ctrl + C .

По умолчанию оператор break выходит только из самого внутреннего цикла, в котором он находится.

Если бы мы хотели найти первую позицию, в которой определенный элемент может быть найден в матрице, и мы хотели вырваться из циклов, как только мы его нашли (аналогично примеру с массивом выше), написание следующего не сработало бы:

Мы видим, что цикл продолжал выполняться даже после нахождения 4 в матрице, после заикания в строке, в которой было расположено 4. Это происходит потому, что break вышел только из самого внутреннего цикла, т. Е. Он перестал повторять текущую строку и перешел к следующей. Кроме того, наша задача состояла в том, чтобы найти первое вхождение 4 в матрице, и таким образом мы вернем последнее вхождение 4 в нашей матрице.

Именно здесь в игру вступают помеченные утверждения , которые мы рассмотрим далее.

Помеченные Утверждения

Помеченные операторы могут использоваться вместе с операторами break или continue для имитации перехода к .

Метки могут быть применены к любому блоку кода между <> , для , для каждого , в то время как , делать-в то время как , если и переключить операторы, а также выражения, назначения, возврат операторы, попытка блоки и бросок операторы. Затем мы используем их с операторами break и continue .

Метки работают путем применения идентификатора к конструкции:

Git Essentials

Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!

Затем мы можем вызвать эти помеченные операторы с помощью break или continue . Например, здесь мы обозначили наш внешний цикл как просто внешний . Чтобы выйти из двух или более вложенных циклов, мы разрываем внешний цикл, вызывая метку:

Использование этого помеченного цикла вместо цикла в приведенном выше примере дает правильный результат и поведение:

Вы не можете использовать метку break , если break не находится в блоке кода, обозначенном этой меткой, или это приведет к ошибке во время компиляции.

продолжить

Оператор continue просто пропускает остальную часть текущей итерации и переходит к следующей. Это полезно, когда мы хотим пропустить все (или часть) итерации, соответствующие определенным условиям, особенно если они требуют высокой производительности.

Для цикла while &#8220;пропуск&#8221; остальной части итерации означает прямой возврат к проверке условия перед следующей итерацией, а для цикла for это означает переход к части &#8220;шаг&#8221; цикла for (той части, где мы обычно увеличиваем/уменьшаем управляющую переменную), а затем проверяем условие перед следующей итерацией.

продолжить обычно используется с оператором if &#8211; > мы будем продолжать , если будет выполнено определенное условие. Мы используем это если для выполнения остальной части итерации, только если условие не выполнено, и пропускаем использование продолжить . Например

продолжить в нашем примере можно легко избежать, используя слегка измененную инструкцию if , главным образом, напечатав число, если i % 3 верно, в противном случае ничего не делая.

Общий совет, касающийся как разрыва , так и (особенно) продолжения , состоит в том, чтобы попытаться использовать их в основном в начале итераций в качестве некоторой формы предварительных условий, которые мы проверяем. Использование продолжить где-то в середине итерации-отличный способ вызвать ошибки, на устранение которых у вас уйдет некоторое время.

Конечно, вы также можете использовать продолжить с помеченными операторами:

Вывод

Управление потоком в коде необходимо практически для каждого приложения. Операторы, которые изменяют поток кода, являются фундаментальными строительными блоками, и каждый начинающий разработчик должен полностью контролировать/осознавать, как они работают.

Используя операторы break и continue , разработчики Java могут имитировать операторы go-to и при необходимости выходить из определенных циклов.

break в Java выход из цикла

Всем доброго времени! Данный код взят из книги Head First Java. При выполнении данного кода получается вывод в консоль в виде :"6 14". Если взять листик и ручку и выполнить этот код самому то получается ответ :"6 6". Я начал разбираться в чем же причина, и натолкнулся на то что цикл for со значением outer = 2; не запускается. Я изменил break в условии if на х=x-3 (тоесть сделал то же самое что и делал break не давая выполняться строке x=x+3), и получил результат:"6 6". Напрашивается вывод что из-за многократного выхода из цикла посредством оператора break, не запускается цикл. Простите возможно за глупый вопрос, если можно хотелось бы понять в чем причина такого поведения кода.

Кажется, ты их перепутал:

  • break завершает цикл целиком
  • continue завершает тело цикла, но продолжает сам цикл

Выкиньте x = x + 0; это всё равно ничего не даёт, только вносит неразбериху в ваш неокрепший ум. В таких случаях старайтесь искать проблему поэтапно,шаг за шагом. Нормальные люди это делают с помощью дебагера. предоставляю вам вариант курильщика.

-> Надеюсь это поможет вам понять как устроены вложенные циклы. Придумайте свои метки в выводе в консоль, которые смогут предоставить вам картину.

&#x412;&#x441;&#x451; &#x435;&#x449;&#x451; &#x438;&#x449;&#x435;&#x442;&#x435; &#x43E;&#x442;&#x432;&#x435;&#x442;? Посмотрите другие вопросы с метками java break или задайте свой вопрос.

дизайн сайта / логотип &#169; 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.11.26.40833

Нажимая &#171;Принять все файлы cookie&#187; вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Циклы в Java – как создать и прервать

Цикл — это блок команд, который выполняется снова и снова, пока соблюдается определённое условие. Повторяемый фрагмент кода называют «телом цикла». Одно выполнение тела цикла называют итерацией.

В Яве можно работать с циклами нескольких типов — для этого есть следующие операторы:

while – цикл с предусловием – сначала проверяем условие, затем выполняем тело цикла;

do… while – цикл с постусловием – сначала выполняем один раз тело цикла, затем проверяем условие и, если оно соблюдается, продолжаем;

for – цикл со счётчиком – выполняется и при каждой итерации обновляет счётчик, пока условие в объявлении цикла соблюдается (т.е. проверка условия возвращает true);

сокращенный for (в других языках известен как foreach) – перебирает массив от первого элемента до последнего и на каждой итерации выполняет тело цикла.

Суть условия цикла – проверка выражения с одной или несколькими переменными: «Пока a<11, в каждой итерации выполняем тело цикла и увеличиваем "а" на 1». Но чему равно «а» при первом выполнении цикла?

Если мы используем конструкции с while, значение нужно указать перед началом цикла:

int a = 1;

System.out.println(a);

a++; //увеличиваем а на единицу

Если же переменная работает как счётчик цикла, а за его пределами не используется, её инициализируют прямо в условии. И тут же пишут, что с ней делать в конце каждой итерации. Всё это – в одну строку – с помощью for:

System.out.println(a);

Получаем тот же результат. Список можно было начать с нуля или с отрицательного значения – диапазон определяем сами.

Сокращенный вариант цикла for не содержит указаний ни на число повторов, ни на действия в конце шага. Цикл типа foreach используют для перебора массивов. От первого элемента нужно переходить к следующему – пока массив не кончится.

int[] ms = < 1, 2, 3, 4>; //создаем массив

int s = 0;

s *= i; //последовательно перемножаем элементы

System.out.println(s);

Вложенные циклы Java

Циклы можно вкладывать один в другой. При этом число повторов наружного и вложенных циклов умножается. Если внешний должен выполняться 5 раз и внутренний – 5, всего цикл будет выполнен 25 раз.

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

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