zoukankan      html  css  js  c++  java
  • 深度解析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结束当前方法。

    希望能帮到您!

  • 相关阅读:
    SMTP发邮件(直接可用)实例
    ADO.NET(二)
    ADO.NET(一)
    C# 反射(一)
    APサーバ
    DB2 相关操作
    ArrayList与LinkedList时间复杂度之对比
    java泛型问题 关于警告:XX is a raw type
    Java编程中提高性能的几点建议
    STRUTS2核心控制器:FilterDispatcher
  • 原文地址:https://www.cnblogs.com/lizhangyong/p/7866545.html
Copyright © 2011-2022 走看看