English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы узнаете, как использовать break для завершения цикла. Кроме того, вы также узнаете о теге break.
Предположим, что вы используете цикл. В некоторых случаях вы хотите немедленно завершить цикл, не проверяя тестовое выражение.
В этом случае можно использовать break. При встрече с break он завершает ближайший замкнутый цикл (без проверки тестового выражения). Это подобноКак работает оператор break в Java.
Это почти всегда используется сИспользование if..else вместеНапример,
for (...) { if (testExpression) { break } }
Если выражение if testExpression оценено как true, то execute break завершает цикл for.
fun main(args: Array<String>) { for (i in 1..10) { if (i == 5) {}} break } println(i) } }
При выполнении этого программы, вывод будет:
1 2 3 4
Когда значение i равно 5, выражение i == 5 вычисляется как true, затем выполняется break. Это завершитЦикл for.
Ниже приведена программа, которая calculates общая сумма введенных пользователем чисел до тех пор, пока пользователь не введет 0.
ДоступОсновные ВВЕД и ВЫВОД в Kotlinчтобы узнать больше о том, как получить ввод от пользователя.
fun main(args: Array<String>) { var sum = 0 var number: Int while (true) { print("Введи цифру: ") number = readLine()!!.toInt() if (number == 0) break sum += number } print("sum = $sum") }
При выполнении этого программы, вывод будет:
Введи цифру: 4 Введи цифру: 12 Введи цифру: 6 Введи цифру: -9 Введи цифру: 0 sum = 13
В aforementioned программе тестовое выражение while-цикла всегда равно true.
Здесь while-цикл выполняется до тех пор, пока пользователь не введет 0. При вводе 0 выполняется break, что завершает while-цикл.
До сих пор вы изучили break без тега, который завершает ближайший заключенный цикл. Break может использовать другой способ (с тегом) для завершения необходимого цикла (может быть внешним циклом).
Теги в Kotlin начинаются сИдентификаторначало, за которым следует @.
Здесь test@ находится внеwhile-циклПомеченные теги. Теперь, используя помеченный break (в данном случае break @test), можно прервать определенный цикл.
fun main(args: Array<String>) { first@ for (i in 1..4) { second@ for (j in 1..2) { println("i = $i; j = $j") if (i == 2) break@first } } }
При выполнении этого программы, вывод будет:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Здесь, когда результат вычисления выражения i == 2 равен true, выполняется break@first для завершения цикла, помеченного тегом first@.
Это 一些上述程序的变体。
В следующей программе break завершает цикл, помеченный тегом @second.
fun main(args: Array<String>) { first@ for (i in 1..4) { second@ for (j in 1..2) { println("i = $i; j = $j") if (i == 2) break@second } } }
При выполнении этого программы, вывод будет:
i = 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 используется в программе для终止 наиболее внутреннего цикла, в этом случае не нужно использовать помеченный break.
В Kotlin есть 3 типа структурных прыжков выражений: break, continue и return.