热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

浅谈Java8的foreach跳出循环break/return_java

这篇文章主要介绍了Java8的foreach跳出循环breakreturn,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完

java8中跳出循环不能使用break?

通过测试发现:

对于java8中的特殊写法lamada表达式中,不能使用break,会提示错误;

java8中使用return,会跳出当前循环,继续下一次循环,作用类似continue;

java8中使用foreach,但是不是lamada表达式写法,可以正常使用break或者return,可以直接跳出循环.

public class TestForEachJava8 {
	public static void main(String[] args) {		
    	System.out.println("c-------------------");
    	
    	//lamada表达式中foreach使用break
    	List c = Arrays.asList("6666", "7777", "8888", "9999");
    	c.stream().forEach(str ->{
    		if("8888".equals(str)){
    			return; //跳出当前循环,继续下一轮
    		}
    		System.out.println(str);    		
    	});
    	
    	System.out.println("d-------------------");    	
    	List d = Arrays.asList("6666", "7777", "8888", "9999");
    	d.stream().forEach(str ->{
    		System.out.println(str);
    		if("8888".equals(str)){
    			break; //IDE提示错误:break cannot be used outside of a loop or a switch
    		}    		
    	});
    	System.out.println("a-------------------");
		List a  = new ArrayList<>();
    	a.add("1111");
    	a.add("2222");
    	a.add("3333");
    	a.add("4444");
    	for(String str:a){
    		if("3333".equals(str)){
    			break;   //正常跳出循环
    		}
    		System.out.println(str);
    	}
    	
    	System.out.println("b-------------------");    	
    	List b  = new ArrayList<>();
    	b.add("1111");
    	b.add("2222");
    	b.add("3333");
    	b.add("4444");
    	for(String str:b){
    		if("3333".equals(str)){
    			return; //也能跳出循环
    		}
    		System.out.println(str);
    	}    	
	}
}

输出:

c-------------------
6666
7777
9999
d-------------------
6666
7777
8888
9999
a-------------------
1111
2222
b-------------------
1111
2222

java中jdk8的forEach()方法return血的教训!

啊啊啊!记录。。。

JDK8中return竟然不return了。。。

but:::

2、

两个for循环作对比,如下:


推荐阅读
author-avatar
陆寥频
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有