假设您正在使用循环。有时希望不检查测试表达式就立即终止循环。
在这种情况下, break
使用break
。遇到时,它将终止最近的封闭循环(无需检查测试表达式)。这类似于break语句在Java中的工作方式。
休息如何工作?
它几乎总是与if..else构造一起使用。例如,
for (...) {
if (testExpression) {
break
}
}
如果将testExpression评估为true
,则执行break
来终止for
循环。
示例:Kotlin休息
fun main(args: Array) {
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) {
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
执行break
终止while
循环。
科特林标记的休息
到目前为止,您所学到的是未标记的break
形式,它终止了最近的封闭循环。还有另一种方法可以使用break
(标记形式)来终止所需的循环(可以是外部循环)。
标记的中断如何工作?
Kotlin中的标签以标识符开头,后跟@
。
在此, 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
}
}
}
运行该程序时,输出为:
i = 1; j = 1
i = 1; j = 2
i = 2; j = 1
在这里,当i == 2
表达式的计算结果为true
, break@first
执行break@first
来终止标记为first@
的循环。
这是上述程序的一些变体。
在下面的程序中,break终止带有标签@second.
的循环@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
}
}
}
运行该程序时,输出为:
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。
有3只结构跳表现在科特林: break
, continue
和return
。要了解continue
和return
表达式,请访问:
- Kotlin继续
- Kotlin 函数