Scala 中的 break 語句

Mohammad Irfan 2023年1月30日 2022年5月18日
  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