深度解析continue,break和return
continue,break和return是Java中的关键字,在流程控制中使用频率较高。
在使用中,经常会有同学在使用中产生混淆,从而一系列bug。
在这里,我通过Java编程为大家解析三者在实际使用中的区别。
1.continue
通常出现在程序循环控制结构中,表示结束本次循环,若后续还有循环,则继续进行后面的循环。举例:
class Demo1 {//声明一个类Demo1 public static void main(String[] args) {//入口函数 for(int i=0;i<5;i++){//for循环 if(i==3){//当i=3时,仅结束本次循环,但是for循环剩余次数并未结束 continue; } System.out.println(i);//在控制台打印输出循环遍历的数字 } System.out.println("for循环之后"); } }
在控制台打印输出如下:
0 1 2 4 for循环之后
可见,当i=3时,仅结束本次循环,for循环剩下的次数并未结束;同时,for循环之后的语句可以正常执行,比如控制台打印输出“for循环之后”。
我们再来看break。
2.break
我们还用上面的代码,不同的是将continue改为break。
class Demo2 {//声明一个类Demo2 public static void main(String[] args) {//入口函数 for(int i=0;i<5;i++){//for循环 if(i==3){//当i=3时,结束for循环 break; } System.out.println(i);//在控制台打印输出循环遍历的数字 } System.out.println("for循环之后"); } }
控制台打印输出结果是:
0 1 2 for循环之后
可见,当i=3时,for循环结束,不再执行剩余的循环,同时继续执行for循环之后的语句(如打印输出“for循环之后”)。
上面是一层or循环,如果在两层for循环中使用break会怎样呢?请看下面的代码:
public class Demo3 { public static void main(String[] args) {//入口函数 for(int i=0;i<3;i++){//外层for循环 for(int j=0;j<5;j++){//内层for循环 if(j==4){//当j=3时,结束内层for循环 break; } System.out.println(j);//在控制台打印输出循环遍历的数字 } System.out.println("*********");//一轮内层for循环结束时的分隔符 } System.out.println("for循环之后"); } }
控制台打印输出结果是:
0 1 2 3 ********* 0 1 2 3 ********* 0 1 2 3 ********* for循环之后
可见,在两层for循环中,break只是结束了所在层的for循环(即内层for循环),并未结束外层for循环。那么,改为return会怎样呢?
3.return
我们先来看下面的代码:
class Demo4 {//声明一个类Demo4 public static void main(String[] args) {//入口函数 for(int i=0;i<3;i++){//外层for循环 for(int j=0;j<5;j++){//内层for循环 if(j==4){//当i=3时,结束方法 return; } System.out.println(j);//在控制台打印输出循环遍历的数字 } System.out.println("*********");//一轮内层for循环结束时的分隔符 } System.out.println("for循环之后"); } }
控制台打印输出为:
0 1 2 3
可见,使用return后,整个方法结束。
最后做下总结:
在循环控制语句中,continue仅结束本次循环;break结束本重循环;return结束当前方法。
希望能帮到您!