注意
Scala中没有Java中的break和continue关键字。Scala中所有的方法都是通过对象调用的。
if判断实现Java中的continue
for (i <- 1 to 10 ; if i != 3) {
println(i)
}
抛出异常实现Java中的break
try {
for (i <- 1 to 10) {
if (i == 3) {
throw new RuntimeException
}
println(i)
}
} catch {
case e =>
}
println("循环体之外的内容")
使用Scala中Breaks类中的break方法跳出循环
- 注意使用此方法跳出循环时,要先标识此循环可跳出。
Breaks.breakable(
for (i <- 1 to 10) {
if (i == 3) {
Breaks.break()
}
println(i)
}
)
println("循环体之外的内容")
Scala中最常用的跳出方式
- 先通过import导入Breaks类中所有的"静态"方法,其实导入的是Breaks类的伴生对象中的方法。
import scala.util.control.Breaks._
breakable(
for (i <- 1 to 10) {
if (i == 3) {
break // scala中方法的括号可以省略
}
println(i)
}
)
println("循环体之外的内容")
Scala中break方法的原理
Scala中实现break的原理其实就是抛出异常的方式,break方法底层抛出异常,breakable用于捕获异常。