📜  Kotlin break

📅  最后修改于: 2020-10-05 14:41:10             🧑  作者: Mango

在本教程中,您将学习使用break终止循环。另外,您还将了解中断标签。

假设您正在使用循环。有时希望不检查测试表达式就立即终止循环。

在这种情况下, 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表达式的计算结果为truebreak@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只结构跳表现在科特林: breakcontinuereturn 。要了解continuereturn表达式,请访问:

  • Kotlin继续
  • Kotlin 函数