原文: https://www.programiz.com/kotlin-programming/continue

在本教程中,您将学习使用继续跳过循环的当前迭代。 另外,您还将在本文中了解有关继续标签的信息。

假设您正在使用循环。 有时希望跳过循环的当前迭代。

在这种情况下,将使用continuecontinue构造跳过了当前的循环循环,并且程序控制跳到了循环主体的末尾。


continue如何工作?

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

  1. while (testExpression1) {
  2. // codes1
  3. if (testExpression2) {
  4. continue
  5. }
  6. // codes2
  7. }

如果将testExpression2求值为true,则将执行continue,在该迭代之后,它会跳过while循环内的所有代码。

Kotlin `continue`表达式 - 图1


示例:Kotlin continue

  1. fun main(args: Array<String>) {
  2. for (i in 1..5) {
  3. println("$i Always printed.")
  4. if (i > 1 && i < 5) {
  5. continue
  6. }
  7. println("$i Not always printed.")
  8. }
  9. }

运行该程序时,输出为:

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

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

  1. println("$i Not always printed.")

声明。

但是,声明

  1. println("$i Always printed.")

在此循环的每次迭代中都执行此语句,因为此语句位于continue构造之前。


示例:仅计算正数之和

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

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

  1. fun main(args: Array<String>) {
  2. var number: Int
  3. var sum = 0
  4. for (i in 1..6) {
  5. print("Enter an integer: ")
  6. number = readLine()!!.toInt()
  7. if (number <= 0)
  8. continue
  9. sum += number
  10. }
  11. println("sum = $sum")
  12. }

运行该程序时,输出为:

  1. Enter an integer: 4
  2. Enter an integer: 5
  3. Enter an integer: -50
  4. Enter an integer: 10
  5. Enter an integer: 0
  6. Enter an integer: 12
  7. sum = 31

Kotlin continue标签

到目前为止,您所学到的是continue的未标记形式,它跳过了最近的封闭循环的当前迭代。 通过使用continue标签,continue也可用于跳过所需循环(可以是外部循环)的迭代。


continue标签如何工作

Kotlin `continue`表达式 - 图2

Kotlin 中的标签以标识符开头,后跟@

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


示例:带标签的continue

  1. fun main(args: Array<String>) {
  2. here@ for (i in 1..5) {
  3. for (j in 1..4) {
  4. if (i == 3 || j == 2)
  5. continue@here
  6. println("i = $i; j = $j")
  7. }
  8. }
  9. }

运行该程序时,输出为:

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

通常不建议使用标记为continue的代码,因为这会使您的代码难以理解。 如果您必须使用标记为continue的情况,请重构代码并尝试以其他方式解决它,以使其更具可读性。


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

  • Kotlin break
  • Kotlin 函数