普通for循环和Java8中foreach()循环中return,continue,break的用法
目录
2 普通for循环中return,continue,break的用法
1 前言
在我们平时开发中,会发现Java8的foreach()循环使用率要远远大于之前的普通for循环使用,它们二者在使用上还是有许多区别的。之前能跳出普通for循环使用的一些关键字在Java8中的foreach()循环中却不能使用。
2 普通for循环中return,continue,break的用法
return: 直接结束当前方法
@Test
public void testForeach(){
List<String> list = Arrays.asList("123", "456", "789", "abc", "ccc");
for (String str: list) {
if (str.equals("789")){
return;
}
System.out.println(str);
}
System.out.println("方法正在进行。。。。。");
}

continue:结束当前循环,进入下一循环
@Test
public void testForeach(){
List<String> list = Arrays.asList("123", "456", "789", "abc", "ccc");
for (String str: list) {
if (str.equals("789")){
continue;
}
System.out.println(str);
}
System.out.println("方法正在进行。。。。。");
}

break:结束此次for循环
@Test
public void testForeach(){
List<String> list = Arrays.asList("123", "456", "789", "abc", "ccc");
for (String str: list) {
if (str.equals("789")){
break;
}
System.out.println(str);
}
System.out.println("方法正在进行。。。。。");
}

3 Java8中foreach()的用法
return: 结束当前循环,进入下一循环
@Test
public void testForeach(){
List<String> lists = Arrays.asList("123", "456", "789", "abc", "ccc");
lists.forEach(list->{
if (list.equals("789")){
return;
}
System.out.println(list);
});
System.out.println("方法正在进行。。。。。");
}

注意:Java8中的lambda表达式foreach()不支持continue和break关键字
4 如何退出Java8中的foreach()循环
4.1 anyMatch(Predicate p)
/**
* anyMatch(Predicate p) 传入一个断言型函数,对流中所有的元素进行判断
* 只要有一个满足就返回true,都不满足就返回false,返回true时就结束了循环
*/
@Test
public void testForeach(){
List<String> lists = Arrays.asList("123", "456", "789", "abc", "ccc");
lists.stream().anyMatch(list->{
if (list.equals("789")){
return true;
}
System.out.println(list);
return false;
});
System.out.println("方法正在进行。。。。。");
}

/**
* 这种写法不便于测试理解,但简便,平时推荐使用这种
*/
@Test
public void testForeach(){
List<String> lists = Arrays.asList("123", "456", "789", "abc", "ccc");
lists.stream().anyMatch(list-> list.equals("789"));
System.out.println("方法正在进行。。。。。");
}
以上,我们就理清了普通for循环和Java8foreach()循环中的关系,以及使用Java8中lambda表达式做出跳出循环操作的方法。暂时写到这里,有机会会继续补充,不对的地方还请批评指正。
想要了解更多编程小知识,快来关注公众号:爪哇开发吧!每周会不定时的进行更新。



浙公网安备 33010602011771号