栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

重学-Java for循环

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

重学-Java for循环

Java共有三种for循环方式:

  • fori
  • foreach
  • Stream.foreach
fori
	for (int i = 0; i < arrayList.size(); i++) {
    // dosomething
	}

fori这种方式是Java最早的for循环方式,由于Java语法糖的不断完善,以及JDK 8的出现,是得此种方式大多数出现在教条的大学课本上,在实际的企业开发中用的较少,目前阿里巴巴的代码检测插件也会提示可以将fori的形式转换为foreach的形式。

foreach
for (String s : arrayList) {
 // dosomething
}

即增强for循环,这种方式是第一种fori的语法糖,在编译后,对应的foreach便会自动转换为fori的形式。

Stream.foreach
arrayList.forEach(array -> {
  // dosomething
});

此种方式是JDK 1.8之后随lambda表达式出现的for循环方式,代码更加简洁,并且可配合其他新特性使用更少的代码、以最简单的形式完成复杂操作,但是使用本方式要注意return、break并不能完成在前两者的目的。

代码测试

定义四个元素的List列表,当循环到值为hello1时输出并返回。

		List arrayList = new ArrayList();
		arrayList.add("hello");
		arrayList.add("hello1");
		arrayList.add("hello2");
		arrayList.add("hello3");

    //① 使用fori的形式
   	for (int i = 0; i < arrayList.size(); i++) {
			String s = arrayList.get(i);
			System.out.println(s);
			if (s.equals("hello1")) {
				break;
			}
		}


		for (int i = 0; i < arrayList.size(); i++) {
			String s = arrayList.get(i);
			System.out.println(s);
			if (s.equals("hello1")) {
				return;
			}
		}


	  //输出:
		hello
		hello1
      
     for (String s : arrayList) {
			System.out.println(s);
			if (s.equals("hello1")) {
				break;
			}
		} 
      
    //② 使用增强for循环的方式
    for (String s : arrayList) {
			System.out.println(s);
			if (s.equals("hello1")) {
				return;
			}
		}


   //输出
		hello
		hello1
      
      
   //③ 使用Stream.foreach的形式
     arrayList.forEach(array -> {
			System.out.println(array);
			if (array.equals("hello1")) {
				break;
			}
		});


		arrayList.forEach(array -> {
			System.out.println(array);
			if (array.equals("hello1")) {
				return;
			}
		});

	 //输出:
   无输出,编译报错,在Stream.foreach中,无法使用break关键字.
     
     
      List list = Arrays.asList("123", "456", "789", "115");
        list.forEach(element -> {
            if (element.equals("456")) {
                // 跳出本次循环
                return;
            }
            System.out.println(element);
        });
    }

	//输出:
	123
  789
  115

break :跳出所在的当前整个循环,到循环外层代码继续执行

continue: 跳出本次循环,到下一个迭代循环

return : 直接返回方法,当前方法的后续代码将都不会被执行

注意:在Stream.foreach中,return的作用相当于普通for循环中的continue,即:跳出本次循环,进行下一次,所以在foreach中,无论返回条件是什么,都会将List的每一条信息走完。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号