В этом руководстве вы научитесь использовать break для завершения цикла. Кроме того, вы также узнаете о метках разрыва.
Предположим, вы работаете с петлями. Иногда желательно немедленно завершить цикл, не проверяя тестовое выражение.
В таком случае break
используется. При обнаружении он завершает ближайший охватывающий цикл (без проверки тестового выражения). Это похоже на то, как оператор break работает в Java.
Как работает перерыв?
Он почти всегда используется с конструкцией if… else. Например,
for (…) (if (testExpression) (break))
Если значение testExpression равно true
, break
выполняется, что завершает for
цикл.
Пример: Kotlin break
fun main(args: Array) ( for (i in 1… 10) ( if (i == 5) ( break ) println(i) ) )
Когда вы запустите программу, вывод будет:
1 2 3 4
Когда значение i равно 5, выражение i == 5
внутри if
вычисляется true
и break
выполняется. Это завершает цикл for.
Пример: вычислить сумму, пока пользователь не введет 0
Программа ниже вычисляет сумму чисел, введенных пользователем, пока пользователь не введет 0.
Посетите Kotlin Basic Input Output, чтобы узнать больше о том, как принимать данные от пользователя.
fun main(args: Array) ( var sum = 0 var number: Int while (true) ( print("Enter a number: ") number = readLine()!!.toInt() if (number == 0) break sum += number ) print("sum = $sum") )
Когда вы запустите программу, вывод будет:
Введите число: 4 Введите число: 12 Введите число: 6 Введите число: -9 Введите число: 0 сумма = 13
В приведенной выше программе тестовое выражение while
цикла всегда true
.
Здесь while
цикл выполняется до тех пор, пока пользователь не введет 0. Когда пользователь вводит 0, break
выполняется while
цикл, который завершает цикл.
Котлин Маркированный перерыв
То, что вы узнали до сих пор, это немаркированная форма break
, которая завершает ближайший охватывающий цикл. Можно использовать другой способ break
(помеченная форма) для завершения желаемого цикла (может быть внешний цикл).
Как работает маркированный перерыв?
Ярлык в Котлине начинается с идентификатора, за которым следует @
.
Здесь test @ - это метка, отмеченная во внешнем цикле while. Теперь, используя break
с меткой ( break@test
в данном случае), вы можете прервать конкретный цикл.
Вот пример:
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@first ) ) )
Когда вы запустите программу, вывод будет:
я = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Здесь, когда i == 2
вычисляется выражение true
, break@first
выполняется, что завершает цикл, отмеченный меткой first@
.
Вот небольшая вариация вышеупомянутой программы.
В программе ниже break завершает цикл, отмеченный меткой @second.
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@second ) ) )
Когда вы запустите программу, вывод будет:
я = 1; j = 1 i = 1; j = 2 i = 2; j = 1 i = 3; j = 1 i = 3; j = 2 i = 4; j = 1 i = 4; j = 2
Примечание: поскольку, break
используется для завершения самого внутреннего цикла в этой программе, в этом случае нет необходимости использовать помеченный разрыв.
Есть 3 структурные выражения скачка в Котлин: break
, continue
и return
. Чтобы узнать об этом continue
и return
выразить свое мнение, посетите:
- Котлин продолжить
- Функция Котлина