Kotlin break 表达式

假设你正在使用循环。有时需要立即终止循环,而不检查测试表达式。

在这种情况下,会使用 break。遇到 break 时,它会终止最近的封闭循环(而不检查测试表达式)。这与 Java 中的 break 语句工作方式 类似。


break 如何工作?

它几乎总是与 if...else 结构一起使用。例如:

for (...) {
    if (testExpression) {
        break
    }
}

如果 testExpression 被评估为 true,则执行 break,从而终止 for 循环。

Kotlin break

示例: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 Labeled 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 种结构化跳转表达式:breakcontinuereturn。要了解 continuereturn 表达式,请访问

  • Kotlin continue
  • Kotlin 函数
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战