如何退出多重循环

这标题要解决的问题太容易get了,课代表来划重点: “多重循环”,绝大多数初学者都以为直接在循环里边加break语句就可以终止所有循环,这么一说break真是无敌了呀,很可惜“我以为” 而不是“实践以为”呢,那怎么才能解决退出多重循环呢?

首先,让我们回顾两个知识点 “continue”“break” 语句二者的区别。

  • break是用于终止本轮所有次循环,即不执行本次循环中break后面的语句,直接跳出循环
  • continue是用于终止本轮本次循环,即本次循环中的continue后面的代码不执行,进行下一次循环的路口判断

下面我就用代码证实理解二者的概念。

【代码】

//continue语句
public class Exit {
    
    

	public static void main(String[] args) {
    
    
		
		for(int i = 0; i < 4; i ++) {
    
    
			System.out.println("i = " +i);
			if(i == 2) {
    
    
				continue;
			}
		}
	}
}

运行结果:

i = 0
i = 1
i = 2
i = 3
//break语句的单层循环
public class Exit {
    
    

	public static void main(String[] args) {
    
    
		
		for(int i = 0; i < 4; i ++) {
    
    
			System.out.println("i = " +i);
			if(i == 2) {
    
    
				break;
			}
		}
	}
}

运行结果:

i = 0
i = 1
i = 2

对比下break语句的多重循环的结果

【代码】

public class Exit {
    
    

	public static void main(String[] args) {
    
    
		
		for(int i = 0; i < 4; i ++) {
    
    
			for(int j = 0; j < 4; j ++) {
    
    
				System.out.println("i = " +i + ",j =" + j);
				if(i == 2 && j == 2) {
    
    
					break;
				}
			}
		}
	}
}

运行结果:

i = 0,j = 0
i = 0,j = 1
i = 0,j = 2
i = 0,j = 3
i = 1,j = 0
i = 1,j = 1
i = 1,j = 2
i = 1,j = 3
i = 2,j = 0
i = 2,j = 1
i = 2,j = 2
i = 3,j = 0
i = 3,j = 1
i = 3,j = 2
i = 3,j = 3

从上面运行结果可以看出i=2,j=3是没有出现的,说明内层循环结束,而外层循环继续。

【小结】无论是单层循环还是多重循环,continue语句只能终止本次循环,继续回到该循环的初始位置;break语句只能终止并跳出本次循环,回到最上层循环或者继续执行循环体之外的语句。

说到这儿,已经把continue 与 break语句的区别都理着透彻了,你掌握了吗?

接下来就回到起初的问题,既然break语句只能退出本次循环,那该如何退出多重循环呢?

我之前写过一篇文章,总结了常见的冒号用法,其中也讲解了 多重循环的跳转标记,你不妨点进去瞧瞧,收获颇多耶。

采取的方法就是 利用“ 标记名称 :for / while ” 的表达式 ,即可给定循环起一个外号,于是语句“break 标记名称 ”便实现跳出指定循环的需求。

【代码】

public class Exit {
    
    

	public static void main(String[] args) {
    
    
		
		loop: for(int i = 0; i < 4; i ++) {
    
    
			for(int j = 0; j < 4; j ++) {
    
    
				System.out.println("i = " +i + ",j =" + j);
				if(i == 2 && j == 2) {
    
    
					break loop;
				}
			}
		}
	}
}

运行结果:

i = 0,j =0
i = 0,j =1
i = 0,j =2
i = 0,j =3
i = 1,j =0
i = 1,j =1
i = 1,j =2
i = 1,j =3
i = 2,j =0
i = 2,j =1
i = 2,j =2

总结:无论两层还是三层甚至多层循环,想退出哪层 就在该层前面给其取外号即可。

猜你喜欢

转载自blog.csdn.net/weixin_46312449/article/details/112093654