淺談Java8 的foreach跳出循環(huán)break/return
java8中跳出循環(huán)不能使用break?
通過測(cè)試發(fā)現(xiàn):
對(duì)于java8中的特殊寫法lamada表達(dá)式中,不能使用break,會(huì)提示錯(cuò)誤;
java8中使用return,會(huì)跳出當(dāng)前循環(huán),繼續(xù)下一次循環(huán),作用類似continue;
java8中使用foreach,但是不是lamada表達(dá)式寫法,可以正常使用break或者return,可以直接跳出循環(huán).
public class TestForEachJava8 {
public static void main(String[] args) {
System.out.println("c-------------------");
//lamada表達(dá)式中foreach使用break
List<String> c = Arrays.asList("6666", "7777", "8888", "9999");
c.stream().forEach(str ->{
if("8888".equals(str)){
return; //跳出當(dāng)前循環(huán),繼續(xù)下一輪
}
System.out.println(str);
});
System.out.println("d-------------------");
List<String> d = Arrays.asList("6666", "7777", "8888", "9999");
d.stream().forEach(str ->{
System.out.println(str);
if("8888".equals(str)){
break; //IDE提示錯(cuò)誤:break cannot be used outside of a loop or a switch
}
});
System.out.println("a-------------------");
List<String> a = new ArrayList<>();
a.add("1111");
a.add("2222");
a.add("3333");
a.add("4444");
for(String str:a){
if("3333".equals(str)){
break; //正常跳出循環(huán)
}
System.out.println(str);
}
System.out.println("b-------------------");
List<String> b = new ArrayList<>();
b.add("1111");
b.add("2222");
b.add("3333");
b.add("4444");
for(String str:b){
if("3333".equals(str)){
return; //也能跳出循環(huán)
}
System.out.println(str);
}
}
}
輸出:
c-------------------
6666
7777
9999
d-------------------
6666
7777
8888
9999
a-------------------
1111
2222
b-------------------
1111
2222
java中jdk8的forEach()方法return血的教訓(xùn)!
啊啊啊!記錄。。。
JDK8中return竟然不return了。。。

but:::

2、

兩個(gè)for循環(huán)作對(duì)比,如下:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)單例設(shè)計(jì)模式方法解析
這篇文章主要介紹了Java實(shí)現(xiàn)單例設(shè)計(jì)模式方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Java多維數(shù)組和Arrays類方法總結(jié)詳解
這篇文章主要介紹了Java多維數(shù)組和Arrays類方法總結(jié)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Java實(shí)現(xiàn)驗(yàn)證碼驗(yàn)證功能
Java如何實(shí)現(xiàn)驗(yàn)證碼驗(yàn)證功能呢?日常生活中,驗(yàn)證碼隨處可見,他可以在一定程度上保護(hù)賬號(hào)安全,那么他是怎么實(shí)現(xiàn)的呢?今天通過本文給大家實(shí)例詳解,需要的朋友參考下2017-02-02
spring boot 即時(shí)重新啟動(dòng)(熱更替)使用說明
這篇文章主要介紹了spring boot 即時(shí)重新啟動(dòng)(熱更替)的相關(guān)資料,需要的朋友可以參考下2017-12-12
springAop實(shí)現(xiàn)講解(看這篇夠了)
AOP面向切面編程是一種編程范式,它通過將通用的橫切關(guān)注點(diǎn)(如日志、事務(wù)、權(quán)限控制等)與業(yè)務(wù)邏輯分離,使得代碼更加清晰、簡(jiǎn)潔、易于維護(hù),這篇文章主要介紹了springAop實(shí)現(xiàn)講解(看這篇夠了),需要的朋友可以參考下2024-02-02
Mybatis一對(duì)多查詢的兩種姿勢(shì)(值得收藏)
這篇文章主要給大家介紹了關(guān)于Mybatis一對(duì)多查詢的兩種姿勢(shì),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Springboot如何切換默認(rèn)的Tomcat容器
這篇文章主要介紹了Springboot如何切換默認(rèn)的Tomcat容器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

