欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Scala中如何中斷循環(huán)詳解

 更新時間:2023年04月29日 08:32:23   作者:夏殿灬青葛石  
在Scala中,可以使用break和continue語句來中斷循環(huán)。break語句可以在滿足某個條件時中斷循環(huán),而continue語句可以在滿足某個條件時跳過當(dāng)前循環(huán)迭代,直接執(zhí)行下一次迭代

目錄 1.使用拋出和捕獲異常的方法跳出當(dāng)前循環(huán)2.使用Scala中的Breaks類的break方法3.測試4.簡化 使用 ._ 來引入全部內(nèi)容 方便調(diào)用

在scala中無法直接使用break關(guān)鍵字跳出當(dāng)前循環(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類的break方法

首先引入Breaks類,調(diào)用該類下的breakable方法(表示接下來的代碼是可中斷的),在需要中斷的地方調(diào)用該類下的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類中的break方法
    Breaks.breakable(
      for (i <- 0 until 5) {
        if (i == 3) {
          Breaks.break()
        }
        println(i)
      }
    )
  }
}

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

3.測試

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

4.簡化

使用 ._ 來引入全部內(nèi)容 方便調(diào)用

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

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

這樣接下來調(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類中的break方法
    breakable(
      for (i <- 0 until 5) {
        if (i == 3) {
          break()
        }
        println(i)
      }
    )
  }
}

到此這篇關(guān)于Scala中如何中斷循環(huán)詳解的文章就介紹到這了,更多相關(guān)Scala中斷循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot實現(xiàn)定時任務(wù)的4種方式舉例詳解

    Springboot實現(xiàn)定時任務(wù)的4種方式舉例詳解

    在我們開發(fā)項目過程中經(jīng)常需要定時任務(wù)來幫助我們來做一些內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Springboot實現(xiàn)定時任務(wù)的4種方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • Java中ArrayList刪除的常用操作及方法

    Java中ArrayList刪除的常用操作及方法

    ArrayList是最常用的一種java集合,在開發(fā)中我們常常需要從ArrayList中刪除特定元素,本文主要介紹了Java中ArrayList刪除的常用操作及方法,感興趣的可以了解一下
    2023-11-11
  • Java中final關(guān)鍵字的用法總結(jié)

    Java中final關(guān)鍵字的用法總結(jié)

    在Java中,final可以別用來修飾類、修飾方法、修飾變量和修飾參數(shù)等,這里就來簡單作一個Java中final關(guān)鍵字的用法總結(jié):
    2016-06-06
  • 詳解Java并發(fā)包中線程池ThreadPoolExecutor

    詳解Java并發(fā)包中線程池ThreadPoolExecutor

    ThreadPoolExecutor是Java語言對于線程池的實現(xiàn)。線程池技術(shù)使線程在使用完畢后不回收而是重復(fù)利用。如果線程能夠復(fù)用,那么我們就可以使用固定數(shù)量的線程來解決并發(fā)問題,這樣一來不僅節(jié)約了系統(tǒng)資源,而且也會減少線程上下文切換的開銷
    2021-06-06
  • eclipse中自動生成構(gòu)造函數(shù)的兩種方法

    eclipse中自動生成構(gòu)造函數(shù)的兩種方法

    下面小編就為大家?guī)硪黄猠clipse中自動生成構(gòu)造函數(shù)的兩種方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java編程實現(xiàn)NBA賽事接口調(diào)用實例代碼

    Java編程實現(xiàn)NBA賽事接口調(diào)用實例代碼

    這篇文章主要介紹了Java編程實現(xiàn)NBA賽事接口調(diào)用實例代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • java容器類知識點詳細總結(jié)

    java容器類知識點詳細總結(jié)

    這篇文章主要介紹了java容器類知識點詳細總結(jié),
    2019-06-06
  • Java的JNI快速入門教程(推薦)

    Java的JNI快速入門教程(推薦)

    下面小編就為大家?guī)硪黄狫ava的JNI快速入門教程(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • ExecutorService實現(xiàn)獲取線程返回值

    ExecutorService實現(xiàn)獲取線程返回值

    這篇文章主要介紹了ExecutorService實現(xiàn)獲取線程返回值,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Dubbo框架線程池使用介紹

    Dubbo框架線程池使用介紹

    當(dāng)我們在使用dubbo的時候,是可以通過調(diào)整線程池來達到調(diào)優(yōu)的效果,我們可以在dubbo:protocol 標(biāo)簽中使用用threadpool屬性選擇自己想要使用的線程池,通過threads屬性配置服務(wù)線程數(shù),queues屬性配置使用的隊列
    2022-09-09

最新評論