java forEach中不能使用break和continue的原因

这篇具有很好参考价值的文章主要介绍了java forEach中不能使用break和continue的原因。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.首先了解break和continue的使用范围和作用

  1.1使用范围

break适用范围:只能用于switch或者是循环语句中。当然可以用于增强for循环。

continue适用范围: 用于循环语句中。

 1.2作用

break:

1. break用于switch语句的作用是结束一个switch语句。

2. break用于循环语句中的作用是结束当前所在的循环语句。

continue:

1.中止当前迭代的循环,进入下一次的迭代

1.3区别:

break是结束循环,进行循环的下一条语句

continue是结束本次循环,进行下一次循环。

2.forEach中不能使用break和continue的原因

首先查询forEach的源码可以知道,接受的参数是Consumer对象,这是一个函数式接口.然后在forEach方法中再做了增强for循环.

    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

所以forEach的本质其实就是一个方法,这个方法里面进行了增强for循环,这个for循环执行的是我们实现的Consumer函数式接口的accept方法.

foreach continue,java,开发语言

在forEach中使用break时提示的Break outside of loop(循环外使用break),前面说过forEach是一个方法,我们传到forEach中的是一个Consumer对象,然后forEach源码里面再调用Consumer的accept方法,那么这里就相当于我们在accept方法中使用了break,这样子当然会报错了,break只能在循环体中使用,不在循环体中使用都会报这个错误。文章来源地址https://www.toymoban.com/news/detail-827793.html

到了这里,关于java forEach中不能使用break和continue的原因的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java基础教程】(二十二)Java新特性篇 · 第二讲:foreach循环——概念及优缺点、使用方式及应用场景~

    Java的 foreach 特性最初出现在JDK 1.5中,也被称为“增强的for循环”。它的设计目的是提供一种简洁、易读的语法,用于遍历集合或数组中的元素,减少了传统 for循环的冗余代码和错误机会。 简单来说, foreach是一种迭代器模式的变体,它允许我们以简单且直观的方式遍历一个

    2024年02月16日
    浏览(49)
  • java8 foreach的索引获取

    1、foreach 使用List.foreach((item,index)-{业务处理}) 2、Map通过key排序升序和降序

    2024年02月15日
    浏览(36)
  • foreach日常使用

    最近做了一个功能   按年份统计课程访问次数   按班级统计班级访问次数 $uniqueYearTime    array:3 [   0 = 2021   1 = 2022   2 = 2023 ] 这里的$v是各个年份   想用其做键值    所以用了一个新的变量  $courseInfo重新进行赋值  解决了问题 $classIds  array:6 [   0 = 145   1 = 147   2 = 154

    2024年02月06日
    浏览(34)
  • java中 list 集合 foreach 时删除会报错

    在使用Java中的List集合的foreach循环进行元素遍历时,不能在循环体内删除元素,否则会抛出ConcurrentModificationException异常。 这是因为在使用foreach循环时,Java会使用迭代器来遍历集合中的元素,而在集合被修改时,迭代器可能会失效,从而导致ConcurrentModificationException异常的抛

    2024年02月15日
    浏览(36)
  • mybatis的<foreach>标签使用

    记录 :419 场景 :使用MyBatis的foreach/foreach标签的循环遍历List类型的入参。使用collection属性指定List,item指定List中存放的对象,separator指定分割符号,open指定开始字符,close指定结束字符。 版本 :JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。 1.基础知识 1.1MyBatis的标签 (1)查看MyBatis支持的

    2023年04月24日
    浏览(42)
  • foreach循环使用方法详解

    在前面的文章中, 千锋壹哥 给大家讲解了for、while、do-while三种循环结构,并讲解了如何跳出循环的几种方式,比如break、continue、return等。但是截止到目前,与循环相关的内容还没有完事,我们还有最后一哆嗦,今天 千锋壹哥 会给大家讲解另一种循环方式--增强for循环!这

    2023年04月24日
    浏览(45)
  • Vue 中 forEach() 的使用

    forEach() 是前端开发中操作数组的一种方法,主要功能是遍历数组,其实就是 for 循环的升级版,该语句需要有一个回调函数作为参数。回调函数的形参依次为:1、value:遍历数组的内容;2、index:对应数组的索引,3、array:数组自身。 在 Vue 项目中,标签里的循环使用 v-for,

    2024年02月06日
    浏览(46)
  • MyBatis批处理,使用foreach

    测试代码: 批量插入数据的局限性: 无法获取插入数据的id 批量生成的SQL太长,可能会被服务器拒绝 测试代码

    2024年02月07日
    浏览(40)
  • vue3中使用ForEach报错Uncaught TypeError: xxxx.forEach is not a function

    在vue3页面中想要遍历在data中定义的数组,没有做JSON数据处理,然后用forEach方法就一直报错......网上查找了很多相关错误,有些是说命名敏感,还有数据没做JSON转化,或是要用异步处理.......试了各种方法发现都不能解决。不过从下面报错可以看出就是我的数组类型不符合

    2024年02月11日
    浏览(49)
  • Java8 lambda 表达式 forEach 如何提前终止?

    首先,让我们看一下Java 8中如何使用forEach()方法。forEach()方法接受一个Consumer接口作为参数,该接口定义了一个accept()方法,该方法接受一个对象并对其执行一些操作。因此,我们可以通过Lambda表达式来实现Consumer接口。下面是一个使用Lambda表达式的forEach()方法的示例: 在上面

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包