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

 更新时间:2021年07月28日 09:31:12   作者:Ryze丶  
这篇文章主要介绍了Java8 的foreach跳出循环break/return,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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<String> 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<String> 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<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;   //正常跳出循环
    		}
    		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; //也能跳出循环
    		}
    		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循环作对比,如下:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java实现将txt文件转成xls文件的方法

    Java实现将txt文件转成xls文件的方法

    今天小编就为大家分享一篇Java实现将txt文件转成xls文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 关于Java中配置ElasticSearch集群环境账号密码的问题

    关于Java中配置ElasticSearch集群环境账号密码的问题

    这篇文章主要介绍了Java中配置ElasticSearch集群环境账号密码的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Java中的throws关键字处理异常的最佳实践记录

    Java中的throws关键字处理异常的最佳实践记录

    在Java编程中,异常处理是保证程序健壮性和稳定性的重要手段,除了使用try-catch块捕获异常外,Java还提供了throws关键字,允许我们将异常抛给调用者处理,本文介绍Java中的throws关键字处理异常的最佳实践记录,感兴趣的朋友一起看看吧
    2025-01-01
  • 浅析java消息摘要与数字签名

    浅析java消息摘要与数字签名

    这篇文章给大家分析了关于java消息摘要与数字签名的相关知识点内容,有兴趣的朋友们可以学习下。
    2018-08-08
  • Java中的递增i++与++i的实现原理详解

    Java中的递增i++与++i的实现原理详解

    这篇文章主要介绍了Java中的i++与++i的实现原理详解,在Java中,i++是一种常见的递增操作符,用于将变量i的值增加1,它是一种简洁且方便的方式来实现循环和计数功能,i++可以用于各种情况,本文来看一下其实现原理,需要的朋友可以参考下
    2023-10-10
  • mybatis-plus支持null字段全量更新的两种方法

    mybatis-plus支持null字段全量更新的两种方法

    本文主要介绍了mybatis-plus支持null字段全量更新的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 基于swing开发弹幕播放器

    基于swing开发弹幕播放器

    这篇文章主要为大家详细介绍了基于swing实现弹幕播放器的开发过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 关于ArrayList的动态扩容机制解读

    关于ArrayList的动态扩容机制解读

    这篇文章主要介绍了关于ArrayList的动态扩容机制解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java 天生就是多线程

    Java 天生就是多线程

    这篇文章主要介绍了Java天生就是多线程,程序天生就是多线程程序,因为执行main()方法的是一个名称为main的线程,更多相关内容需要的小伙伴可以参考一下
    2022-07-07
  • Java通过调用C/C++实现的DLL动态库——JNI的方法

    Java通过调用C/C++实现的DLL动态库——JNI的方法

    这篇文章主要介绍了Java通过调用C/C++实现的DLL动态库——JNI的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论