> 文章列表 > Scala循环中断

Scala循环中断

Scala循环中断

目录

    • 1.使用抛出和捕获异常的方法跳出当前循环
    • 2.使用Scala中的Breaks类的break方法
    • 3.测试
    • 4.简化 使用 ._ 来引入全部内容 方便调用

在scala中无法直接使用break关键字跳出当前循环,但有其他方法

1.使用抛出和捕获异常的方法跳出当前循环

def main(args: Array[String]): Unit = {try {for (i <- 0 until 5) {if (i == 3)throw new RuntimeExceptionprintln(i)}} catch {case e: Exception =>}println("这是循环外的代码")

2.使用Scala中的Breaks类的break方法

首先引入Breaks类,调用该类下的breakable方法(表示接下来的代码是可中断的),在需要中断的地方调用该类下的break方法即可跳出当前循环

import scala.util.control.Breaksobject Test_Break {def main(args: Array[String]): Unit = {try {for (i <- 0 until 5) {if (i == 3)throw new RuntimeExceptionprintln(i)}} catch {case e: Exception =>}println("这是循环外的代码")//使用Scala中的Breaks类中的break方法Breaks.breakable(for (i <- 0 until 5) {if (i == 3) {Breaks.break()}println(i)})}}

这里解释下,Breaks类下的breakable方法其实就是将 try catch 进行了包装,而该类下的break方法其实就是抛出了一个 breakException (返回类型Nothing),也就是说这里同样是使用抛出异常的方法实现了跳出循环的这样一个功能

3.测试

可见都是当 i == 3 时中断了循环
Scala循环中断

4.简化 使用 ._ 来引入全部内容 方便调用

我们可以使用 import scala.util.control.Breaks._
(其实就是加上了 ._ 类似于Java中的 .* )引入Break类中的所有属性和方法
这样接下来调用其中的方法就不用再 . 了

package chapter02import scala.util.control.Breaks._object Test_Break {def main(args: Array[String]): Unit = {try {for (i <- 0 until 5) {if (i == 3)throw new RuntimeExceptionprintln(i)}} catch {case e: Exception =>}println("这是循环外的代码")//使用Scala中的Breaks类中的break方法breakable(for (i <- 0 until 5) {if (i == 3) {break()}println(i)})}}