Scala中如何中断循环详解

 更新时间:2023年04月29日 08:32:23   作者:夏殿灬青葛石  
在Scala中,可以使用break和continue语句来中断循环。break语句可以在满足某个条件时中断循环,而continue语句可以在满足某个条件时跳过当前循环迭代,直接执行下一次迭代

目录 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 RuntimeException
        println(i)
      }
    } catch {
      case e: Exception =>
    }
    println("这是循环外的代码")

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

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

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("这是循环外的代码")
    //使用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 时中断了循环

4.简化

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

我们可以使用 import scala.util.control.Breaks._

(其实就是加上了 ._ 类似于Java中的 .* )引入Break类中的所有属性和方法

这样接下来调用其中的方法就不用再 . 了

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("这是循环外的代码")
    //使用Scala中的Breaks类中的break方法
    breakable(
      for (i <- 0 until 5) {
        if (i == 3) {
          break()
        }
        println(i)
      }
    )
  }
}

到此这篇关于Scala中如何中断循环详解的文章就介绍到这了,更多相关Scala中断循环内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • javascript最新2020经典面试题

    javascript最新2020经典面试题

    这篇文章主要介绍了javascript最新2020经典面试题的相关内容,有需要的朋友们可以学习下。
    2020-02-02
  • java 中 poi解析Excel文件版本问题解决办法

    java 中 poi解析Excel文件版本问题解决办法

    这篇文章主要介绍了java 中 poi解析Excel文件版本问题解决办法的相关资料,需要的朋友可以参考下
    2017-08-08
  • Eclipse开发JavaWeb项目配置Tomcat的方法步骤

    Eclipse开发JavaWeb项目配置Tomcat的方法步骤

    本文主要介绍了Eclipse开发JavaWeb项目配置Tomcat的方法步骤,首先介绍eclipse开发JavaWeb项目需要配置的相关环境,使用tomcat软件在本地搭建服务器,然后再在eclipse环境下配置tomcat,感兴趣的可以了解一下
    2021-08-08
  • 软件开发七大过程模型

    软件开发七大过程模型

    这篇文章主要介绍了Java七大过程模型详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • java获取日期之间天数的方法

    java获取日期之间天数的方法

    这篇文章主要介绍了java获取日期之间天数的方法,涉及java针对日期的转换与数学运算相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Java使用excel工具类导出对象功能示例

    Java使用excel工具类导出对象功能示例

    这篇文章主要介绍了Java使用excel工具类导出对象功能,结合实例形式分析了java创建及导出Excel数据的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • Java中使用ZXing和QRCode生成二维码的示例详解

    Java中使用ZXing和QRCode生成二维码的示例详解

    生成二维码在Java中有多种方法,常用的是通过第三方库来实现,比较流行的库包括 ZXing (Zebra Crossing) 和 QRCode,本文小编就给大家介绍了Java中使用ZXing和QRCode生成二维码的示例,需要的朋友可以参考下
    2024-09-09
  • Java的wait(), notify()和notifyAll()使用心得

    Java的wait(), notify()和notifyAll()使用心得

    本篇文章是对java的 wait(),notify(),notifyAll()进行了详细的分析介绍,需要的朋友参考下
    2013-08-08
  • 详解Spring boot+CXF开发WebService Demo

    详解Spring boot+CXF开发WebService Demo

    这篇文章主要介绍了详解Spring boot+CXF开发WebService Demo,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • Spring MVC请求参数与响应结果全局加密和解密详解

    Spring MVC请求参数与响应结果全局加密和解密详解

    这篇文章主要给大家介绍了关于Spring MVC请求参数与响应结果全局加密和解密的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08

最新评论