介绍
Scala的循环中断,与C/C++/JAVA不同,没有 break、continue关键字,是通过 函数式 的风格解决实现的
break
从 0-9 循环打印,当遇到6时,就结束循环
import scala.util.control.Breaks
Breaks.breakable(
for(i<- 0 until 10){
if(i==6){
Breaks.break()
}
println(i)
}
)
省略写法
这种写法
import scala.util.control.Breaks._,表示导入Breaks类的所有方法,在当前类中可以直接写Breaks的方法,如:break()在 scala 中,无参方法的小括号可以省略,所以
break(),可简写break
import scala.util.control.Breaks._
breakable(
for(i<- 0 until 10){
if(i==6){
break
}
println(i)
}
)
底层实现
break() 和 breakable() 在 Breaks 类中
break() 底层实现
break() 就是在抛出异常,源代码如下:
def break(): Nothing = { throw breakException }
breakable() 底层实现
breakable() 就是 try{}catch(){},源代码如下:
def breakable(op: => Unit) {
try {
op
} catch {
case ex: BreakControl =>
if (ex ne breakException) throw ex
}
}
continue
scala 没有 continue 关键字 或 方法,实现的方式,是将 breakable() 写 for 语句里面
案例
从 0-9 循环打印,当遇到6时,就结束本次循环,进行下一次循环
import scala.util.control.Breaks._
for(i<- 0 until 10){
breakable { // 换成 {},就可以写多个语句
if (i == 6) {
break
}
println(i)
}
}
解释: 将 breakable() 的 小括号 (),换成 花括号 {},就可以写 多个语句