Scala中如何中斷循環(huán)詳解
目錄 1.使用拋出和捕獲異常的方法跳出當(dāng)前循環(huán)2.使用Scala中的Breaks類的break方法3.測(cè)試4.簡(jiǎn)化 使用 ._ 來引入全部?jī)?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方法其實(shí)就是將 try catch 進(jìn)行了包裝,而該類下的break方法其實(shí)就是拋出了一個(gè) breakException (返回類型Nothing),也就是說這里同樣是使用拋出異常的方法實(shí)現(xiàn)了跳出循環(huán)的這樣一個(gè)功能
3.測(cè)試
可見都是當(dāng) i == 3 時(shí)中斷了循環(huán)

4.簡(jiǎn)化
使用 ._ 來引入全部?jī)?nèi)容 方便調(diào)用
我們可以使用 import scala.util.control.Breaks._
(其實(shí)就是加上了 ._ 類似于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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式舉例詳解
在我們開發(fā)項(xiàng)目過程中經(jīng)常需要定時(shí)任務(wù)來幫助我們來做一些內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
詳解Java并發(fā)包中線程池ThreadPoolExecutor
ThreadPoolExecutor是Java語言對(duì)于線程池的實(shí)現(xiàn)。線程池技術(shù)使線程在使用完畢后不回收而是重復(fù)利用。如果線程能夠復(fù)用,那么我們就可以使用固定數(shù)量的線程來解決并發(fā)問題,這樣一來不僅節(jié)約了系統(tǒng)資源,而且也會(huì)減少線程上下文切換的開銷2021-06-06
eclipse中自動(dòng)生成構(gòu)造函數(shù)的兩種方法
下面小編就為大家?guī)硪黄猠clipse中自動(dòng)生成構(gòu)造函數(shù)的兩種方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
Java編程實(shí)現(xiàn)NBA賽事接口調(diào)用實(shí)例代碼
這篇文章主要介紹了Java編程實(shí)現(xiàn)NBA賽事接口調(diào)用實(shí)例代碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
java容器類知識(shí)點(diǎn)詳細(xì)總結(jié)
這篇文章主要介紹了java容器類知識(shí)點(diǎn)詳細(xì)總結(jié),2019-06-06
ExecutorService實(shí)現(xiàn)獲取線程返回值
這篇文章主要介紹了ExecutorService實(shí)現(xiàn)獲取線程返回值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08

