中断控制流程语句:break、continue

来源:互联网 发布:4k电视盒子 知乎 编辑:程序博客网 时间:2024/05/01 00:56
流程语句在我们开发过程中经常用到,我们常用到的流程语句有if、for、while、do while、swith等。
在这些流程当中,有时候我们需要跳出流程,所以需要用到中断流程的语句,特别是多流程嵌套时,更容易用到。
中断流程语句,java中常用的是break、带标签的break和continue。
下面就举几个简单地实例,来记录下这些语句的用法。

案例一:简单地break
package test.java;

/**
 * 中断控制流程语句
 * @author Tastill
 *
 */
public class test3 {
    //break
    public static void main(String[] args) {
        int i = 1;
        int k = 1;
        //break
        while(i < 10){
            k += i;
            System.out.println("break之前  i:" + i + "  " + "k:" + k);
            if(k > 10) break;
            System.out.println("break之后  i:" + i + "  " + "k:" + k);
            i++;
            k++;
        }
       
    }   
}
这是一个简单地单循环语句,显而易见,当k>10时,会跳出该循环,不在执行后面代码。
那么既然有单循环语句,就不会有嵌套循环语句以及判断语句,古人云,言多必失,代码也是一样,越复杂,就越容易出错,所以控制流程语句嵌套很深的时候,在某种特定的情况下我们需要跳出所有控制流程,那么问题来了,JAVA支持吗?
显而易见,是支持的,这里我们就需要用到带标签的break

案例二:带标签的break
package test.java;

/**
 * 中断控制流程语句
 * @author Tastill
 *
 */
public class test3 {
    //break
    public static void main(String[] args) {
        int i = 1;
        int k = 1;

        //break break_data
        break_data:
        while(i < 10){
            k += i;
            System.out.println("break之前  i:" + i + "  " + "k:" + k);
            if(k < 100){
                System.out.println("进入k < 100循环");
                if(i+k > 20){
                    System.out.println("进入i+k > 20循环");
                    break break_data;
                }else{
                    System.out.println("进入i+k > 20 的 else 循环");
                }
            }else{
                System.out.println("进入k > 100 的 else 循环");
            };
            System.out.println("break之后  i:" + i + "  " + "k:" + k);
            i++;
            k++;
        }
       
    }
   
}
break的标签就是:break_data,注意,这里的break_data后面一定要加“:”号。
当i+k >20的时候,就会跳出所有循环,然后执行循环外的代码。

案例三:continue
package test.java;

/**
 * 中断控制流程语句
 * @author Tastill
 *
 */
public class test3 {
    //break
    public static void main(String[] args) {
        int i = 1;
        int k = 1;

        //continue
        for (int j = 0; j < 20; j++) {
            System.out.println("==========================================");
            System.out.println("i:" + i + "  " + "j:" + j);
            if(j < 5) continue;
            System.out.println("i:" + i + "  " + "j:" + j);
            j += i;
            i++;
        }
       
    }
   
}

continue语句将控制转移到了最内层循环的首部,即当j<5时,continue语句会越过当前循环的剩余部分,直接跳到循环首部,例如本案例中j<5时,continue语句直接跳转到j++语句。
阅读全文
1 0