溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Scala中怎么中斷循環(huán)

發(fā)布時(shí)間:2023-05-05 14:57:29 來(lái)源:億速云 閱讀:127 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Scala中怎么中斷循環(huán)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Scala中怎么中斷循環(huán)”吧!

1.使用拋出和捕獲異常的方法跳出當(dāng)前循環(huán)

def main(args: Array[String]): Unit = {
    try {
      for (i <- 0 until 5) {
        if (i == 3)
          throw new RuntimeException
        println(i)
      }
    } catch {
      case e: Exception =>
    }
    println("這是循環(huán)外的代碼")

2.使用Scala中的Breaks類(lèi)的break方法

首先引入Breaks類(lèi),調(diào)用該類(lèi)下的breakable方法(表示接下來(lái)的代碼是可中斷的),在需要中斷的地方調(diào)用該類(lèi)下的break方法即可跳出當(dāng)前循環(huán)

import scala.util.control.Breaks
object Test_Break {
  def main(args: Array[String]): Unit = {
    try {
      for (i <- 0 until 5) {
        if (i == 3)
          throw new RuntimeException
        println(i)
      }
    } catch {
      case e: Exception =>
    }
    println("這是循環(huán)外的代碼")
    //使用Scala中的Breaks類(lèi)中的break方法
    Breaks.breakable(
      for (i <- 0 until 5) {
        if (i == 3) {
          Breaks.break()
        }
        println(i)
      }
    )
  }
}

這里解釋下,Breaks類(lèi)下的breakable方法其實(shí)就是將 try catch 進(jìn)行了包裝,而該類(lèi)下的break方法其實(shí)就是拋出了一個(gè) breakException (返回類(lèi)型Nothing),也就是說(shuō)這里同樣是使用拋出異常的方法實(shí)現(xiàn)了跳出循環(huán)的這樣一個(gè)功能

3.測(cè)試

可見(jiàn)都是當(dāng) i == 3 時(shí)中斷了循環(huán)

Scala中怎么中斷循環(huán)

4.簡(jiǎn)化

使用 ._ 來(lái)引入全部?jī)?nèi)容 方便調(diào)用

我們可以使用 import scala.util.control.Breaks._

(其實(shí)就是加上了 ._ 類(lèi)似于Java中的 .* )引入Break類(lèi)中的所有屬性和方法

這樣接下來(lái)調(diào)用其中的方法就不用再 . 了

package chapter02
import scala.util.control.Breaks._
object Test_Break {
  def main(args: Array[String]): Unit = {
    try {
      for (i <- 0 until 5) {
        if (i == 3)
          throw new RuntimeException
        println(i)
      }
    } catch {
      case e: Exception =>
    }
    println("這是循環(huán)外的代碼")
    //使用Scala中的Breaks類(lèi)中的break方法
    breakable(
      for (i <- 0 until 5) {
        if (i == 3) {
          break()
        }
        println(i)
      }
    )
  }
}

到此,相信大家對(duì)“Scala中怎么中斷循環(huán)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI