Kotlin 标记中断
在使用循环时,如果满足某个条件,您想立即停止循环的执行。在这种情况下,您可以使用break或return表达式退出循环。
在本文中,我们将学习如何使用break表达式来退出循环。当程序中遇到 break 表达式时,它会终止到最近的封闭循环。
Kotlin 中有两种中断表达式:
众所周知,Unlabelled break 用于在满足某个条件时终止到最近的封闭循环。
但是,当满足某些条件时,标记的 break用于终止到所需的循环。它可以在标签的帮助下完成。后跟@ 符号的标识符称为标签,例如inner@、outer@、first@、second@ 等。您可以将标签与任何表达式一起使用,并且应该写在它的前面。
我们将学习如何在 while、do-while 和 for 循环中使用标记的 break 表达式。
在 while 循环中使用标记的中断 -
带标签的 break 用于在满足特定条件时退出到所需的块,而不检查 while 循环中的条件。然后,将控制权转移到 while 块的以下语句。
如果您使用标签external@标记外循环,那么您可以在中断条件块中使用break@outer轻松中断外循环。
在 while 循环中标记中断的语法 -
outer@ while(condition) {
// code
inner@ while(condition) {
// code
if(break condition) {
break @outer
}
}
}
在 while 循环中使用标记中断的 Kotlin 程序 -
Kotlin
fun main(args: Array) {
var num1 = 4
outer@ while (num1 > 0) {
var num2 = 4
inner@ while (num2 > 0) {
if (num1==2)
break@outer
println("num1 = $num1, num2 = $num2")
num2--
}
num1--
}
}
Kotlin
fun main(args: Array) {
var num1 = 4
outer@ do {
var num2 = 4
inner@ do {
if (num1 == 2)
break@outer
println("num1 = $num1; num2 = $num2")
num2--
} while (num2 > 0)
num1--
} while (num1 > 0)
}
Kotlin
fun main(args: Array) {
outer@ for (num1 in 4 downTo 1) {
inner@ for (num2 in 4 downTo 1) {
if (num1 == 2)
break@outer
println("num1 = $num1; num2 = $num2")
}
}
}
输出:
num1 = 4, num2 = 4
num1 = 4, num2 = 3
num1 = 4, num2 = 2
num1 = 4, num2 = 1
num1 = 3, num2 = 4
num1 = 3, num2 = 3
num1 = 3, num2 = 2
num1 = 3, num2 = 1
当 (num1 == 2) 表达式被评估为 true 时,将执行 break@outer,它终止所需的用 outer@ 标记的循环。
在 do-while 循环中使用标记的 break –
在 do-while 循环中,还执行标记的 break 以终止所需的循环。在这里,我们使用了 outer@ 用于外部 do-while 和 inner@ 用于内部 do-while 循环。
do-while 循环中标记中断的语法 -
outer@ do {
// code
inner@ do {
// code
if(break condition) {
break@outer
}
} while(condition)
} while(condition)
在 do-while 循环中使用标记中断的 Kotlin 程序-
科特林
fun main(args: Array) {
var num1 = 4
outer@ do {
var num2 = 4
inner@ do {
if (num1 == 2)
break@outer
println("num1 = $num1; num2 = $num2")
num2--
} while (num2 > 0)
num1--
} while (num1 > 0)
}
输出:
num1 = 4; num2 = 4
num1 = 4; num2 = 3
num1 = 4; num2 = 2
num1 = 4; num2 = 1
num1 = 3; num2 = 4
num1 = 3; num2 = 3
num1 = 3; num2 = 2
num1 = 3; num2 = 1
在这里,我们打印与 while 循环相同的输出。当 (num1 == 2) 表达式被评估为 true 时,将执行 break@outer,它终止所需的用 outer@ 标记的循环。
在 for 循环中使用标记的 break –
在 for 循环中,我们也可以使用标记的 break 来终止特定条件下所需的循环。我们将外部for循环标记为outer@,将内部for循环标记为inner@。在for循环中,迭代是通过迭代器完成的。
带标签的 for 循环中断的语法 -
outer@ for(iteration through iterator) {
// code
inner@ for(iteration through iterator)
// code
if(break condition) {
break@outer
}
}
}
在 for-loop 中使用标记 break 的 Kotlin 程序
科特林
fun main(args: Array) {
outer@ for (num1 in 4 downTo 1) {
inner@ for (num2 in 4 downTo 1) {
if (num1 == 2)
break@outer
println("num1 = $num1; num2 = $num2")
}
}
}
输出:
num1 = 4; num2 = 4
num1 = 4; num2 = 3
num1 = 4; num2 = 2
num1 = 4; num2 = 1
num1 = 3; num2 = 4
num1 = 3; num2 = 3
num1 = 3; num2 = 2
num1 = 3; num2 = 1