普通for循环和Java8中foreach()循环中return,continue,break的用法

目录

1 前言

2 普通for循环中return,continue,break的用法

 3 Java8中foreach()的用法

4 如何退出Java8中的foreach()循环

    4.1 anyMatch(Predicate p)



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表达式做出跳出循环操作的方法。暂时写到这里,有机会会继续补充,不对的地方还请批评指正。

想要了解更多编程小知识,快来关注公众号:爪哇开发吧!每周会不定时的进行更新。

posted @ 2022-01-24 17:41  小猪不会叫  阅读(1002)  评论(0)    收藏  举报  来源