📜  Kotlin 标记中断

📅  最后修改于: 2022-05-13 01:55:36.695000             🧑  作者: Mango

Kotlin 标记中断

在使用循环时,如果满足某个条件,您想立即停止循环的执行。在这种情况下,您可以使用breakreturn表达式退出循环。
在本文中,我们将学习如何使用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