Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmLpBr 123 of 350 menu
◀ ▶

Выход из цикла в Go

Пусть у нас есть вот такой цикл, выводящий числа от 1 до 5:

for i := 1; i <= 5; i++ { fmt.Println(i) // выведет 1, 2, 3, 4 и 5 }

Пусть перед нами стоит задача определить, есть ли среди них число 3. Если есть - выведем "Y", а если нет - ничего не будем делать.

Решим нашу задачу:

for i := 1; i <= 5; i++ { if i == 3 { fmt.Println("Y") // выведет Y } }

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

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

Итак, давайте завершим цикл, как только нам встретится число 3:

for i := 1; i <= 5; i++ { if i == 3 { fmt.Println("Y") // выведет Y break // выйдем из цикла } }

Инструкция break завершает цикл for: и со счетчиком, и с одной проверкой, и без шапки. Отдельных циклов while и do-while в Go нет.

Выход из цикла останавливает повторы, даже если проверка еще истинна. Команда break стоит внутри тела и сразу передает управление строке после всего цикла.

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

Ищем первое число, которое не меньше 5, и выходим, как только оно напечатано:

for i := 0; i < 10; i++ { fmt.Println(i) // выведет 0, 1, 2, 3, 4 и 5 if i >= 5 { break } }

Следующие значения счетчика уже не обрабатываются, хотя проверка i < 10 еще была бы истинна.

Даны переменные:

factor := 3 maxProd := 20

Крутите счетчик от 1 вверх. Остановите повтор, когда произведение счетчика на factor станет больше maxProd. Выведите последнее значение счетчика.

Даны переменные:

n := 1 target := 7

В повторе с проверкой увеличивайте n. Выйдите, как только n станет равным target. Перед выходом выведите n.

Скажите, выполнится ли тело еще раз после команды выхода в том же круге, если она стоит в середине блока.

Запустите цикл по числам от 5 до -3. Выводите их до тех пор, пока не встретится число 0. После этого цикл должен завершить свою работу.

Даны числа от 4 до -3. Найдите сумму чисел, расположенных от начала диапазона до первого отрицательного числа.

Дана строка "12534". Найдите позицию первого символа "3" (считаем, что этот символ обязательно есть в строке).

Определите, сколько целых чисел, начиная с числа 1, нужно сложить, чтобы сумма получилась больше 100.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить