Kotlin continue 表达式

假设你正在使用循环。有时需要跳过当前循环迭代。

在这种情况下,使用 continuecontinue 语句会跳过当前最内层循环的迭代,并将程序控制转移到循环体的末尾。


continue 如何工作?

它几乎总是与 if...else 语句一起使用。例如,

while (testExpression1) {

    // codes1
    if (testExpression2) {
        continue
    }
    // codes2
}

如果 testExpression2 被评估为 true,则执行 continue,这将跳过该迭代中 while 循环内所有在其之后的代码。

How continue expression works in Kotlin?

示例:Kotlin continue

fun main(args: Array<String>) {

    for (i in 1..5) {
        println("$i Always printed.")
        if (i > 1 && i < 5) {
            continue
        }
        println("$i Not always printed.")
    }
}

运行程序后,输出将是

1 Always printed.
1 Not always printed.
2 Always printed.
3 Always printed.
4 Always printed.
5 Always printed.
5 Not always printed.

i 的值大于 1 且小于 5 时,将执行 continue,这将跳过

println("$i Not always printed.")

语句的执行。

但是,由于该语句存在于 continue 语句之前,因此该语句

println("$i Always printed.")

在每次循环迭代中都会被执行。


示例:仅计算正数的总和

下面的程序计算用户输入的最多 6 个正数的总和。如果用户输入负数或零,则将其从计算中跳过。

访问 Kotlin 基本输入输出以了解更多关于如何从用户那里获取输入的信息。

fun main(args: Array<String>) {

    var number: Int
    var sum = 0

    for (i in 1..6) {
        print("Enter an integer: ")
        number = readLine()!!.toInt()

        if (number <= 0)
            continue
        
        sum += number
    }
    println("sum = $sum")
}

运行程序后,输出将是

Enter an integer: 4
Enter an integer: 5
Enter an integer: -50
Enter an integer: 10
Enter an integer: 0
Enter an integer: 12
sum = 31

Kotlin 标签 continue

到目前为止你学到的是无标签形式的 continue,它会跳过最近的封闭循环的当前迭代。通过使用 continue 标签,continue 也可以用来跳过所需循环(可以是外层循环)的迭代。


标签 continue 如何工作?

How labeled continue works?

Kotlin 中的标签以一个 标识符 开始,后面跟着 @

这里,outerloop@ 是标记在外层 while 循环上的标签。现在,通过使用带标签的 continue(在这种情况下是 continue@outerloop),你可以跳过特定循环在该迭代中的代码执行。


示例:标签 continue

fun main(args: Array<String>) {

    here@ for (i in 1..5) {
        for (j in 1..4) {
            if (i == 3 || j == 2)
                continue@here
            println("i = $i; j = $j")
        }
    }
}

运行程序后,输出将是

i = 1; j = 1
i = 2; j = 1
i = 4; j = 1
i = 5; j = 1

标签 continue 的使用通常不被推荐,因为它会使你的代码难以理解。如果你处于必须使用标签 continue 的情况,请重构你的代码,并尝试以不同的方式解决它,使其更具可读性。


Kotlin 中有 3 个结构化跳转表达式:breakcontinuereturn。要了解 breakreturn 表达式,请访问

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

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

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

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