Scala中如何中斷循環(huán)詳解
目錄 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種方式舉例詳解
在我們開發(fā)項目過程中經(jīng)常需要定時任務(wù)來幫助我們來做一些內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Springboot實現(xiàn)定時任務(wù)的4種方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01詳解Java并發(fā)包中線程池ThreadPoolExecutor
ThreadPoolExecutor是Java語言對于線程池的實現(xiàn)。線程池技術(shù)使線程在使用完畢后不回收而是重復(fù)利用。如果線程能夠復(fù)用,那么我們就可以使用固定數(shù)量的線程來解決并發(fā)問題,這樣一來不僅節(jié)約了系統(tǒng)資源,而且也會減少線程上下文切換的開銷2021-06-06eclipse中自動生成構(gòu)造函數(shù)的兩種方法
下面小編就為大家?guī)硪黄猠clipse中自動生成構(gòu)造函數(shù)的兩種方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10Java編程實現(xiàn)NBA賽事接口調(diào)用實例代碼
這篇文章主要介紹了Java編程實現(xiàn)NBA賽事接口調(diào)用實例代碼,具有一定參考價值,需要的朋友可以了解下。2017-11-11ExecutorService實現(xiàn)獲取線程返回值
這篇文章主要介紹了ExecutorService實現(xiàn)獲取線程返回值,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08