假设你正在使用循环。有时需要立即终止循环,而不检查测试表达式。
在这种情况下,会使用 break
。遇到 break
时,它会终止最近的封闭循环(而不检查测试表达式)。这与 Java 中的 break 语句工作方式 类似。
break 如何工作?
它几乎总是与 if...else 结构一起使用。例如:
for (...) { if (testExpression) { break } }
如果 testExpression 被评估为 true
,则执行 break
,从而终止 for
循环。

示例:Kotlin break
fun main(args: Array<String>) {
for (i in 1..10) {
if (i == 5) {
break
}
println(i)
}
}
运行程序后,输出将是
1 2 3 4
当 i 的值为 5 时,if
内部的表达式 i == 5
被评估为 true
,并执行 break
。这会终止 for 循环。
示例:计算用户输入 0 之前的总和
下面的程序计算用户输入的数字的总和,直到用户输入 0 为止。
访问 Kotlin 基本输入输出 了解更多关于如何从用户那里获取输入的信息。
fun main(args: Array<String>) {
var sum = 0
var number: Int
while (true) {
print("Enter a number: ")
number = readLine()!!.toInt()
if (number == 0)
break
sum += number
}
print("sum = $sum")
}
运行程序后,输出将是
Enter a number: 4 Enter a number: 12 Enter a number: 6 Enter a number: -9 Enter a number: 0 sum = 13
在上面的程序中,while
循环的测试表达式始终为 true
。
在这里,while
循环运行直到用户输入 0。当用户输入 0 时,执行 break
,它会终止 while
循环。
Kotlin 标签 break
到目前为止,你学到的是无标签形式的 break
,它终止最近的封闭循环。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
。要了解 continue
和 return
表达式,请访问
- Kotlin continue
- Kotlin 函数