Java跳出多重循环的方法
我们一般用break和cuntinue来控制单个循环,但是如果遇到有多个循环的情况呢,比如下面这个:
for (int i=0; i<10; i++) {
for (int j=0; j<10; j++) {
for (int k=0; k<10; k++) {
}
}
}
如果有以下需求一般怎么做呢?
(1)当j+k > 5时结束所有循环;
(2)当j+k > 5时结束最里两层循环;
(3)当j+k > 5时结束最里一层循环,跳过当前第二层循环,但继续执行剩下的第二层循环;
1、 抛异常来跳出整个循环;
比如说当j+k > 5时结束所有循环可使用此法:
try{
for (int i=0; i<10; i++) {
for (int j=0; j<10; j++) {
for (int k=0; k<10; k++) {
if (j + k > 5){
throw new Exception();
}
}
}
}
}
catch (Exception e) { }
2、 使用条件标识符来控制循环
比如说当j+k > 5时结束最里两层循环,第一种方法就无法做到了,可使用此法:
boolean firstLoop = true;
boolean secondLoop = true;
boolean thirdLoop = true; for (int i=0; i<10; i++) {
if (!firstLoop){
break;
} for (int j=0; j<10; j++) {
if (!secondLoop){
break;
} for (int k=0; k<10; k++) {
if (!thirdLoop){
break;
}
if (j + k > 5){
thirdLoop = false;
secondLoop = false;
}
}
}
}
3、 给循环添加标记,来更精准的控制循环
比如说当j+k > 5时结束最里一层循环,跳过当前第二层循环,但继续执行剩下的第二层循环;这个使用第二种方法也能实现,只是代码可能就会看起来更加的复杂;使用第三种方法就能让这个变得简单明了,代码如下(secondLoop就是一个标记):
for (int i=0; i<10; i++) {
secondLoop:
for (int j=0; j<10; j++) {
for (int k=0; k<10; k++) {
if (j + k > 5){
continue secondLoop;
}
}
}
}
Java跳出多重循环的方法的更多相关文章
- python跳出多重循环的方法
方法1:自定义异常 # -*- coding:utf-8 -*- """ 功能:python跳出循环 """ # 方法1:自定义异常 cla ...
- java 跳出多重循环
public class Main { public static void main(String[] args) { System.out.println("start"); ...
- C/C++——C语言跳出多重循环方法
c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto ; i < MAX1; i++) { ; j < MA ...
- Java之跳出多重循环
在java里,想要跳出多重循环,有两种方法 1.在循环语句前设置一个标记,然后使用带有该标记的break语句跳出该循环 public static void main(String args[]) { ...
- java中如何使用break跳出多重循环
java 中已知的三种跳出多重循环的方式: System.out.println("---------java中跳出多重循环的三种方式:---------"); System.ou ...
- Java中跳出多重嵌套循环的方法
一.使用标号 1.多重嵌套循环前定义一个标号 2.里层循环的代码中使用带有标号 break 的语句 public static void main(String[] args) { ok: for(i ...
- 关于Java 中跳出多重循环
前言 环境:window10 JDK 1.8 应用场景:在多个for循环或while循环中,直接跳到最外层的循环外面,而不是需要层层退出来. 使用: 使用一个标签label(也可以是其他单词,不能是关 ...
- java跳出外部循环
java跳出外部循环两种方法 //用flag标识 boolean flag = true; for(int i=0;i<10&&flag;i++){ for(int j=0;j& ...
- Python 如何跳出多重循环
Python 如何跳出多重循环 抛异常 return
随机推荐
- 高通qxdm抓取sensor的log【学习笔记】
高通qxdm抓取sensor的log 打开qxdm,打开设置界面,去掉其他无关的log,打开Log packets .Message packets的SNS的log 之后需要把端口打开,把端口打开之后 ...
- annotation processor 为啥没有被调用?
Android Studio 3.5 使用@AutoService(Processor.class)注册annotation processor Android Plugin for Gradle: ...
- vue form表单上传文件
<script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js">< ...
- 箱型图Box
箱型图Box 觉得有用的话,欢迎一起讨论相互学习~Follow Me 又称为盒须图.盒式图.盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图. 箱形图最大的优点就是不受异常值的影响,能够准确 ...
- jw python 培训帮助 手册
#########sample 1 (如果python 遇到有问题,就求助于 help 命令,python 是 个人开发的胶水语言,因此不具备 java,c++的类的继承关系) Python hel ...
- intellij查找接口的实现类
拿MyBatis的SqlSession为例 第一步:先找到这个接口 第二步:右击选择 再选择 第三步: 会得到如下 右击Closeable,因为SqlSession实现了它,选择Show Inplem ...
- 初识内存挂:VirtualNES金手指教程
一.什么VirtualNES?什么是金手指? VirtualNES是一个NES模拟器,用来运行.nes文件,即在电脑上玩当年小霸王游戏机上的游戏.而它内置了一个简单的Cheat Engine,称之为金 ...
- phpspreadsheet 中文文档 粗翻版
2019年10月11日09:32:33 官方使用文档 https://phpspreadsheet.readthedocs.io/en/stable/topics/accessing-cells/ ...
- Appium之Toast元素识别
问题思考 在日常使用App过程中,经常会看到App界面有一些弹窗提示(如下图所示)这些提示元素出现后等待3秒左右就会自动消失,那么我们该如何获取这些元素文字内容呢? Toast简介 Android中的 ...
- shell中 >/dev/null 2>&1是什么意思
原文地址:http://juke.outofmemory.cn/entry/295292 我们经常能在 shell 脚本中发现 >/dev/null 2>&1 这样的语句.以前的我 ...