Java 跳出For循环总结
Java 8 之前终止单层For循环
功能代码:
// break 终止循环for (int i=0; i< 10; i++){if(i == 5) {break;}System.out.println("当前 i值为:" + i);}System.out.println("--------------------------");// continue 跳出当前循环,执行下一个循环for (int j=0; j< 10; j++){if(j == 5) {continue;}System.out.println("当前 j值为:" + j);}System.out.println("--------------------------");
控制台输出:
当前 i值为:0
当前 i值为:1
当前 i值为:2
当前 i值为:3
当前 i值为:4
--------------------------
当前 j值为:0
当前 j值为:1
当前 j值为:2
当前 j值为:3
当前 j值为:4
当前 j值为:6
当前 j值为:7
当前 j值为:8
当前 j值为:9
--------------------------
Java 关键字break 和continue 总结:
break语句可以跳出当前循环;
break语句通常配合if,在满足条件时提前结束整个循环;
break语句总是跳出最近的一层循环;
continue语句可以提前结束本次循环;
continue语句通常配合if,在满足条件时提前结束本次循环。
Java 8 之前终止单层For循环拓展
疑惑1:Java 通过return关键字终止程序执行,实现终止for 循环
功能代码:
public static void main(String[] args) {// break 终止循环for (int i=0; i< 10; i++){if(i == 5) {break;}System.out.println("当前 i值为:" + i);}System.out.println("--------------------------");// continue 跳出当前循环,执行下一个循环for (int j=0; j< 10; j++){if(j == 5) {continue;}System.out.println("当前 j值为:" + j);}System.out.println("--------------------------");// return 终止程序执行,实现终止当前for 循环for (int j=0; j< 10; j++){if(j == 5) {return;}System.out.println("当前 j值为:" + j);}System.out.println("--------------------------");// 基于IntStream.range() 生成连续集合List<Integer> colls = IntStream.range(1, 10).boxed().collect(Collectors.toList());// Java8 Stream 终止循环colls.stream().forEach(item ->{// 判断return关键字,在Stream中不生效if(item == 5){return;}// 判断continue/break关键字,在Stream中不允许使用
// if(item == 5){
// continue;
// }
// if(item == 5){
// break;
// }System.out.println("Stream 当前item 值为:" + item);});System.out.println("--------------------------");// Java8 Stream 终止循环,通过throws RuntimeExceptioncolls.stream().forEach(item ->{if (item == 5) {throw new RuntimeException("通过抛出异常,终止for循环");}System.out.println("Stream 当前item 值为:" + item);});}
控制台输出:
当前 i值为:0
当前 i值为:1
当前 i值为:2
当前 i值为:3
当前 i值为:4
--------------------------
当前 j值为:0
当前 j值为:1
当前 j值为:2
当前 j值为:3
当前 j值为:4
当前 j值为:6
当前 j值为:7
当前 j值为:8
当前 j值为:9
--------------------------
当前 j值为:0
当前 j值为:1
当前 j值为:2
当前 j值为:3
当前 j值为:4
结论:通过return 终止程序执行,实现终止for 循环可行
疑惑2:Java 通过抛出异常throw RunTimeException终止程序执行,实现终止for 循环。
功能代码:
public static void main(String[] args) {// break 终止循环for (int i=0; i< 10; i++){if(i == 5) {break;}System.out.println("当前 i值为:" + i);}System.out.println("--------------------------");// continue 跳出当前循环,执行下一个循环for (int j=0; j< 10; j++){if(j == 5) {continue;}System.out.println("当前 j值为:" + j);}System.out.println("--------------------------");// return 终止程序执行,实现终止当前for 循环
// for (int j=0; j< 10; j++){
// if(j == 5) {
// return;
// }
// System.out.println("当前 j值为:" + j);
// }// 通过抛出异常:throw RuntimeException,终止程序执行, 实现终止当前for循环for (int j=0; j< 10; j++){if(j == 5) {throw new RuntimeException("通过抛出异常,终止程序执行,实现终止当前for循环");}System.out.println("当前 j值为:" + j);}System.out.println("--------------------------");// 基于IntStream.range() 生成连续集合List<Integer> colls = IntStream.range(1, 10).boxed().collect(Collectors.toList());// Java8 Stream 终止循环colls.stream().forEach(item ->{// 判断return关键字,在Stream中不生效if(item == 5){return;}// 判断continue/break关键字,在Stream中不允许使用
// if(item == 5){
// continue;
// }
// if(item == 5){
// break;
// }System.out.println("Stream 当前item 值为:" + item);});System.out.println("--------------------------");// Java8 Stream 终止循环,通过throws RuntimeExceptioncolls.stream().forEach(item ->{if (item == 5) {throw new RuntimeException("通过抛出异常,终止for循环");}System.out.println("Stream 当前item 值为:" + item);});}
控制台输出:
当前 i值为:0
当前 i值为:1
当前 i值为:2
当前 i值为:3
当前 i值为:4
--------------------------
当前 j值为:0
当前 j值为:1
当前 j值为:2
当前 j值为:3
当前 j值为:4
当前 j值为:6
当前 j值为:7
当前 j值为:8
当前 j值为:9
--------------------------
当前 j值为:0
当前 j值为:1
当前 j值为:2
当前 j值为:3
当前 j值为:4
Exception in thread "main" java.lang.RuntimeException: 通过抛出异常,终止程序执行,实现终止当前for循环at ForTest.main(ForTest.java:34)
结论:通过抛出异常throw RuntimeException() 终止程序执行,实现终止for 循环可行。
Java 8 Stream终止foreach循环
功能代码:
// 基于IntStream.range() 生成连续集合List<Integer> colls = IntStream.range(1, 10).boxed().collect(Collectors.toList());// Java8 Stream 终止循环colls.stream().forEach(item ->{// 判断return关键字,在Stream中不生效if(item == 5){return;}// 判断continue/break关键字,在Stream中不允许使用
// if(item == 5){
// continue;
// }
// if(item == 5){
// break;
// }System.out.println("Stream 当前item 值为:" + item);});
控制台输出:
--------------------------
Stream 当前item 值为:1
Stream 当前item 值为:2
Stream 当前item 值为:3
Stream 当前item 值为:4
Stream 当前item 值为:6
Stream 当前item 值为:7
Stream 当前item 值为:8
Stream 当前item 值为:9
--------------------------
Java8 Stream 关键字break、continue和return 总结:
java8 Stream 不支持关键字break 和continue
java8 Stream 通过return 关键字无法实现暂停/终止foreach 执行。
Java8 Stream 终止foreach 循环拓展
解决思路:通过抛出异常throw RuntimeException 终止程序执行,实现终止foreach 执行
功能代码:
// Java8 Stream 终止循环,通过throws RuntimeExceptioncolls.stream().forEach(item ->{if (item == 5) {throw new RuntimeException("通过抛出异常,终止for循环");}System.out.println("Stream 当前item 值为:" + item);});
控制台输出:
--------------------------
Stream 当前item 值为:1
Stream 当前item 值为:2
Stream 当前item 值为:3
Stream 当前item 值为:4
Exception in thread "main" java.lang.RuntimeException: 通过抛出异常,终止for循环at ForTest.lambda$main$1(ForTest.java:63)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)at ForTest.main(ForTest.java:61)
Java 跳出嵌套For循环
方式一:通过return 关键字 跳出 嵌套for 循环。
情况一:无返回值函数
/*** 自定义函数 没有返回值,通过return 终止嵌套for 循环*/public void noValue(){for (int i = 0; i <= 10; i++){for (int j=0; j<=10; j++){if (j == 5) {return;}System.out.println("当前j值为:" + j);}System.out.println("当前i值为:" + i);}}
情况二:有返回值函数
/*** 自定义函数 有返回值,通过return 终止嵌套for 循环*/public Integer value(){for (int i = 0; i <= 10; i++){for (int j=0; j<=10; j++){if (j == 5) {return j;}System.out.println("当前j值为:" + j);}System.out.println("当前i值为:" + i);}return 0;}
代码验证:
public static void main(String[] args) {ForTest instance = new ForTest();instance.noValue();System.out.println("--------------");Integer num = instance.value();System.out.println("返回值为:" + num);}
控制台输出:
当前j值为:0
当前j值为:1
当前j值为:2
当前j值为:3
当前j值为:4
--------------
当前j值为:0
当前j值为:1
当前j值为:2
当前j值为:3
当前j值为:4
返回值为:5
方式二:通过定义一个布尔值标识变量,实现终止/暂停嵌套for循环。
情况一:无返回值函数
/*** 自定义函数 没有返回值,通过布尔标识变量 终止/暂停嵌套for 循环*/public void noValue(){// 定义布尔值标识变量boolean target = true;for (int i = 0; i <= 10 && target; i++){for (int j=0; j<=10 && target; j++){if (j == 5) {target = false;}System.out.println("当前j值为:" + j);}System.out.println("当前i值为:" + i);}}
情况二:有返回值函数
/*** 自定义函数 有返回值,通过布尔标识变量 终止/暂停嵌套for 循环*/public Integer value(){// 定义布尔值标识变量boolean target = true;for (int i = 0; i <= 10 && target; i++){for (int j=0; j<=10 && target; j++){if (j == 5) {target = false;return j;}System.out.println("当前j值为:" + j);}System.out.println("当前i值为:" + i);}return 0;}
代码验证:
public static void main(String[] args) {ForTest instance = new ForTest();instance.noValue();System.out.println("--------------");Integer num = instance.value();System.out.println("返回值为:" + num);}
控制台输出:
当前j值为:0
当前j值为:1
当前j值为:2
当前j值为:3
当前j值为:4
当前j值为:5
当前i值为:0
--------------
当前j值为:0
当前j值为:1
当前j值为:2
当前j值为:3
当前j值为:4
返回值为:5
方式三:通过抛出异常,实现终止/暂停嵌套For 循环
情况一:无返回值函数
/*** 自定义函数 没有返回值,通过抛出异常 终止/暂停嵌套for 循环*/public void noValue(){for (int i = 0; i <= 10; i++){for (int j=0; j<=10; j++){if (j == 5) {throw new RuntimeException("通过抛出运行异常,终止/暂停嵌套for 循环");}System.out.println("当前j值为:" + j);}System.out.println("当前i值为:" + i);}}
情况二:有返回值函数
/*** 自定义函数 有返回值,通过抛出异常 终止/暂停嵌套for 循环*/public Integer value(){int num = 0;for (int i = 0; i <= 10; i++){for (int j=0; j<=10; j++){num = j;if (j == 5) {throw new RuntimeException("通过抛出运行异常,终止/暂停嵌套for 循环");}System.out.println("当前j值为:" + j);}System.out.println("当前i值为:" + i);}return num;}
代码测试:
public static void main(String[] args) {ForTest instance = new ForTest();instance.noValue();System.out.println("--------------");Integer num = instance.value();System.out.println("返回值为:" + num);}
控制台输出:
Exception in thread "main" java.lang.RuntimeException: 通过抛出运行异常,终止/暂停嵌套for 循环at ForTest.noValue(ForTest.java:84)at ForTest.main(ForTest.java:72)
当前j值为:0
当前j值为:1
当前j值为:2
当前j值为:3
当前j值为:4Process finished with exit code 1
Java 跳出For循环总结相关推荐
- java跳出指定循环
java跳出指定循环: 方法一: 在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环: for(int i = 0;i < 10; i ++ ...
- Java跳出多重循环
From: https://www.cnblogs.com/fastfn/p/9777067.html 场景:很多的时候需要做到跳出多重循环,而在Java中虽然后goto关键字,但是是保留字,并没有启 ...
- java跳出for循环_Java跳出多层for循环的4种方式
Java跳出多层for循环的4种方式 一.使用return关键字控制 for (int i = 0;i<10;i++){ for (int j = 0; j<10; j++) { if ( ...
- Java跳出多重循环的方法
我们一般用break和cuntinue来控制单个循环,但是如果遇到有多个循环的情况呢,比如下面这个: for (int i=0; i<10; i++) {for (int j=0; j<1 ...
- java跳出双重循环
例如有一个双重循环 for(int i=0;i<10;i++){for(int j=0;j<10;j++){代码块}} 想要在 代码块 处跳出两个for循环,那么可以在外层for循环外 ...
- Java 跳出for循环几个的方式
一共四种类型 一.跳出本次循环(continue) for(int i = 0; i< 999; i++){if(i == 520){log.debug("啊哈!");con ...
- java怎么跳出for循环循环_java如何跳出for循环?
java跳出for循环的方法break continue return break语句 break用于完全结束一个循环,跳出循环体.不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开 ...
- java for怎么跳出_java跳出for循环的方法
java跳出for循环的方法 发布时间:2020-06-26 15:56:42 来源:亿速云 阅读:193 作者:Leah 这篇文章将为大家详细讲解有关java跳出for循环的方法,文章内容质量较高, ...
- java直接跳出for循环_java如何跳出for循环?
java跳出for循环的方法break continue return break语句 break用于完全结束一个循环,跳出循环体.不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开 ...
最新文章
- 实验九 根据材料编程(改变字体颜色)
- 高通孟樸:5G+AI将会是移动互联网主流趋势
- 苹果手机查看python代码的免费软件-Python实现抢购IPhone手机
- Windows Phone中Map控件由浅及深
- Lync 2010升级到Lync 2013POC计划-过程!
- Win10设置屏保时间
- 毕业设计开发日志,基于ARM的嵌入式人脸识别系统的设计与实现
- 练习题︱豆瓣图书的推荐与搜索、简易版知识引擎构建(neo4j)
- 静态网页项目开发基础
- LeCo-82.删除排序链表中的重复元素(二)
- 硬件知识--单片机高精度电流测量电路
- python调用shell命令
- 派件系统c语言实验报告,物流规划与优化选址实验报告.doc
- harmonyos导师姓名,HarmonyOS开发者创新大赛颁奖礼 见证星星之火燃爆盛夏
- MMU简单处理TLB例外
- kubernetes endpoint 代码阅读
- Android,firefly3399开发板,arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- android线程作用,Android线程介绍
- JAVA简易推箱子小游戏制作
- 联想移动员工内幕消息,资深评论