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中断循环内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • IDEA 单元测试覆盖技巧分享

    IDEA 单元测试覆盖技巧分享

    这篇文章主要介绍了IDEA 单元测试覆盖技巧分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 手把手教你搭建第一个Spring Batch项目的步骤

    手把手教你搭建第一个Spring Batch项目的步骤

    这篇文章主要介绍了手把手教你搭建第一个Spring Batch项目的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring国际化和Validation详解

    Spring国际化和Validation详解

    本文介绍了SpringBoot中国际化和Validation的融合实现,包括配置MessageSource和LocalValidatorFactoryBean,以及自定义约束注解和校验器,通过解析请求头中的Accept-Language,SpringBoot可以返回不同语言的文本信息
    2024-11-11
  • Java替换中使用正则表达式实现中间模糊匹配的方法

    Java替换中使用正则表达式实现中间模糊匹配的方法

    今天小编就为大家分享一篇Java替换中使用正则表达式实现中间模糊匹配的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Spring中@RequestMapping、@PostMapping、@GetMapping的实现

    Spring中@RequestMapping、@PostMapping、@GetMapping的实现

    RequestMapping、@PostMapping和@GetMapping是三个非常常用的注解,本文就来介绍一下这三种注解的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • java爬虫Gecco工具抓取新闻实例

    java爬虫Gecco工具抓取新闻实例

    本篇文章主要介绍了JAVA 爬虫Gecco工具抓取新闻实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • SpringBoot:JPA + AuditingEntityListener时区设置方式

    SpringBoot:JPA + AuditingEntityListener时区设置方式

    这篇文章主要介绍了SpringBoot:JPA + AuditingEntityListener时区设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java中使用sax解析xml的解决方法

    java中使用sax解析xml的解决方法

    本篇文章介绍了,在java中使用sax解析xml的解决方法。需要的朋友参考下
    2013-05-05
  • 通过实例了解Java jdk和jre的区别

    通过实例了解Java jdk和jre的区别

    这篇文章主要介绍了通过实例了解Java jdk和jre的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 简单了解JavaCAS的相关知识原理

    简单了解JavaCAS的相关知识原理

    这篇文章主要介绍了简单了解JavaCAS的相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论