在本教程中,您將學習使用break終止循環(huán)。此外,您還將了解 break 標簽。
假設您正在使用循環(huán)。有時希望不檢查測試表達式就立即終止循環(huán)。
在這種情況下,可以使用break。遇到break時,它將終止最近的封閉循環(huán)(無需檢查測試表達式)。這類似于在Java中的break語句工作方式。
它幾乎總是與if..else 一起使用。例如,
for (...) {
if (testExpression) {
break
}
}如果將if testExpression評估為true,break則執(zhí)行終止for循環(huán)。

fun main(args: Array<String>) {
for (i in 1..10) {
if (i == 5) {
break
}
println(i)
}
}運行該程序時,輸出為:
1 2 3 4
當?shù)闹礽等于5時,表達式 i == 5時,if內(nèi)部的值將計算為true,然后執(zhí)行break。這將終止for循環(huán)。
下面的程序計算用戶輸入的數(shù)字總和,直到用戶輸入0。
訪問Kotlin基本輸入輸出以了解有關(guān)如何從用戶那里獲取輸入的更多信息。
fun main(args: Array<String>) {
var sum = 0
var number: Int
while (true) {
print("輸入一個數(shù)字: ")
number = readLine()!!.toInt()
if (number == 0)
break
sum += number
}
print("sum = $sum")
}運行該程序時,輸出為:
輸入一個數(shù)字: 4 輸入一個數(shù)字: 12 輸入一個數(shù)字: 6 輸入一個數(shù)字: -9 輸入一個數(shù)字: 0 sum = 13
在上述程序中,while循環(huán)的測試表達式始終為true。
在這里,while循環(huán)運行直到用戶輸入0。當用戶輸入0時,break將執(zhí)行,從而終止while循環(huán)。
到目前為止,您所學到的是的無標簽形式break,它終止了最近的封閉循環(huán)。break可以使用另一種方式(標記形式)終止所需的循環(huán)(可以是外部循環(huán))。

Kotlin中的標簽以標識符開頭,后跟@。
在此,test@是在外部while循環(huán)中標記的標簽?,F(xiàn)在,通過使用帶有標簽的break(在這種情況下為break @test),可以打破特定的循環(huán)。
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表達式的計算結(jié)果為true時,將執(zhí)行break@first來終止標記為first@的循環(huán)。
這是上述程序的一些變體。
在下面的程序中,break終止帶有標簽標記 @second 的循環(huán)。
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在程序中用于終止最里面的循環(huán),因此在這種情況下不必使用帶標簽的 break 。
Kotlin中有3種結(jié)構(gòu)性跳躍表達:break,continue和return。