Scala 中的 break 语句

Mohammad Irfan 2023年1月30日
  1. Scala 中的 break 语法
  2. 在 Scala 中使用 breakable 方法停止循环
  3. 在 Scala 中使用 breakable 方法来停止内循环
  4. 在 Scala 中使用 return 语句来中断循环
  5. 在 Scala 中使用条件语句来打破循环
Scala 中的 break 语句

我们将在本文中讨论 break 语句及其在 Scala 中的用途。

中断是任何用于控制代码执行流程的编程语言的共同特征之一。在 Scala 中,我们可以使用 break 来停止循环迭代。

Scala 不提供任何 break 语句,但在 scala.util.control.Breaks 包中提供了一个 break 方法。你必须将包导入到你的代码中。

Scala 中的 break 语法

Scala 提供了一个 breakable {} 块,我们可以在其中使用 break 语句。下面的代码是 Scala 中中断的一般语法,我们用它来包围代码来中断流程。

语法:

breakable {
    for (x <- xs) {
        if (cond)
            break  // breaking here
    }
}s

在 Scala 中使用 breakable 方法停止循环

在这里,我们有一个循环迭代 1 到 10,如果值为 5 则中断。在匹配条件和控制回到循环外后立即停止执行,并执行其余代码。

import scala.util.control.Breaks._
object MainObject {
   def main(args: Array[String]) {
        breakable {
            for(i<-1 to 10 by 2){
                if(i==5)
                    break
                else
                    println(i)
            }
        }
    }
}

输出:

1
3

在 Scala 中使用 breakable 方法来停止内循环

你可以使用 breakable 方法在嵌套循环中终止内部循环的执行。如果你正在使用嵌套循环并且只想停止内部循环执行,则在内部循环中使用 break 语句并查看结果。

import scala.util.control.Breaks._
object MainObject {
   def main(args: Array[String]) {
        for(i <- 1 to 3){
            breakable {
                for(j <- 1 to 3){
                    if(i == 2 & j == 2 )
                       break
                    println(i+" "+j)
                }
            }
        }
    }
}

输出:

1 1
1 2
1 3
2 1
3 1
3 2
3 3

在 Scala 中使用 return 语句来中断循环

我们使用 return 语句退出循环,这是一个有效的语句,但问题是它没有执行 return 语句之后编写的代码,因为控制权转到调用函数。

import scala.util.control.Breaks._
object MainObject {
   def main(args: Array[String]) {
       var sum = 0
        for (i <- 0 to 1000) {
            sum += i;
            if (sum>=10)
                return
        println(sum)
        }
    }
}

输出:

0
1
3
6

在 Scala 中使用条件语句来打破循环

有条件地中断循环也是你可以设置标志和指定条件的替代方法之一。如果条件满足,则循环停止执行。

import scala.util.control.Breaks._
object MainObject {
    def main(args: Array[String]) {
        var done = false
        var i = 10
        var sum = 0
        while (i <= 1000 && !done) {
            sum+=i
            if (sum > 10) {
                done = true
           }
            println(sum)
        }
    }
}

输出:

10
20