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 action) {

Objects.requireNonNull(action);

for (T t : this) {

action.accept(t);

}

}

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

在forEach中使用break时提示的Break outside of loop(循环外使用break),前面说过forEach是一个方法,我们传到forEach中的是一个Consumer对象,然后forEach源码里面再调用Consumer的accept方法,那么这里就相当于我们在accept方法中使用了break,这样子当然会报错了,break只能在循环体中使用,不在循环体中使用都会报这个错误。

相关推荐

教你怎么算包车带司机费用!📝附包车价。 包车费用计算指南!📝这里提供详细的包车价格。 包车一天要多少钱?费用其实可以这样简单计算! 包车费用 = 车辆日租金 × 租赁天数 + 司机工资(每日300元) + 行驶公里数 × 每公里油路费。 🚗小车每公里油路费:1.5元至1.8元。 🚐中巴车每公里油路费:2元至2.5元。 🚍大巴车每公里油路费:3元至3.5元。 如果你计算出的价格比实际包车价格低,那很可能遇到了实惠的价格。反之,如果高于计算出的价格,可能需要警惕是否存在中间商赚取差价的情况。 📢记住这些价格范围,帮助你在包车时避免被高价坑骗! 我们提供透明、合理的包车价格,无论你需要旅游大巴车、还是商务车、中巴车的租赁,我们都能满足你的需求。
英雄联盟ez皮肤手感排名,光执事价格及入手性价比
365bet亚洲版官方

英雄联盟ez皮肤手感排名,光执事价格及入手性价比

📅 06-29 👁️ 3002
科目二扣分项目明细2023,科目二扣分标准表
365彩票所有官方app下载平台

科目二扣分项目明细2023,科目二扣分标准表

📅 07-01 👁️ 1782