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

Java 8跳过本次循环,继续执行以及跳出循环,终止循环的代码实例

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

Java 8跳过本次循环,继续执行以及跳出循环,终止循环的代码实例

在Java8之前,最开始使用for i 循环,很老旧,后来有了高级的for each 循环,然后这个跳出本次循环和跳出所有的for循环,都简单,稍微没见过的就是跳出多层for循环。

然后就是Java8出的foreach循环,这个循环里面,break和continue都不管用啦。需要使用return,这个只能跳过本次循环,还是会继续执行for循环的,那么怎么跳出这个Java8的foreach循环呢?

下面对所有的循环,都来了一次操作。

看看如何,跳出当前循环,继续执行;或者直接跳出for循环;或者跳出多层for循环。

package com.lxk.java8.lambdaTest;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;

public class BreakForeach {
 public static void main(String[] args) {
  int max = 5;
  List list = Arrays.asList("123", "12345", "1234", "4321", "1234567", "5678");
  continueForeachJava8(max, list);
  System.out.println();
  breakForeachJava8(max, list);
  System.out.println();
  continueFor(max, list);
  System.out.println();
  breakFor(max, list);
  System.out.println();
  breakManyFor(max, list);
 }
 
 private static void continueForeachJava8(int max, List list) {
  list.forEach(s -> {
   if (s.length() >= max) {
    return;
   }
   System.out.println(s);
  });
 }
 
 private static void breakForeachJava8(int max, List list) {
  //这么做是不对的
  //try {
  // list.forEach(s -> {
  //  if (s.length() >= max) {
  //   throw new Exception();
  //  }
  //  System.out.println(s);
  // });
  //} catch (Exception e) {
  // System.out.println(e.getMessage());
  //}
  //看需求,建议使用如下之一。
  Optional result = list.stream().filter(s -> s.length() >= max).findFirst();
  System.out.println(result.orElse(null));
  boolean lxk = list.stream().anyMatch(s -> s.length() >= max);
  System.out.println(lxk);
 }
 
 private static void continueFor(int max, List list) {
  for (String s : list) {
   if (s.length() >= max) {
    continue;
   }
   System.out.println(s);
  }
 }
 
 private static void breakFor(int max, List list) {
  for (String s : list) {
   if (s.length() >= max) {
    break;
   }
   System.out.println(s);
  }
 }
 
 private static void breakManyFor(int max, List list) {
  lxk:
  for (String s1 : list) {
   System.out.println("第一层:" + s1);
   for (String s2 : list) {
    System.out.println("第二层:" + s2);
    for (String s3 : list) {
     if (s3.length() >= max) {
      break lxk;
     }
     System.out.println("第三层:" + s3);
    }
   }
  }
 }
}

下面是上面的代码的运行结果,可以对照着看一下。

最后是对于:跳出Java8的lambda的foreach循环的说明,摘自某stackflow。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对考高分网的支持。如果你想了解更多相关内容请查看下面相关链接

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

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

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