Bootstrap

java中break的用法

break共有三种用法,具体如下:

  1. 在switch语句中,被用来种植一个语句序列。

    • switch 语句由一个控制表达式和多个case标签组成。
    • switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。
    • switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
    • default在当前switch找不到匹配的case时执行。default并不是必须的。

    Example:

    int lable = 0;
    switch (lable){
        case 0:
            System.out.println("case 0");
            break;
        case 1:
            System.out.println("case 1");
            break;
        case 2:
            System.out.println("case 2");
            break;
        default:
            System.out.println("default");
    }

    运行结果:

    case 0

    注:一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

  2. 退出当前循环。
    Example:

    for (int i = 0; i <3; i++){
    
        System.out.println("i="+i);
    
        for (int j = 0; j < 99; j++) {
            if (j > 5) {
                System.out.println();
                break;                // 如果j>5 ,退出当前循环
            }
            System.out.print("j="+j+"\t");
        }
    }

    运行结果:

    i=0
    j=0 j=1 j=2 j=3 j=4 j=5 
    i=1
    j=0 j=1 j=2 j=3 j=4 j=5 
    i=2
    j=0 j=1 j=2 j=3 j=4 j=5
  3. 作为一种goto语句使用,方法如下:

    首先定义一个label标签,格式为:

    labelx:{
        labelx标签代码块
    }

    然后在标签代码块内部最后一行编写如下代码:

    labelx:{
        labelx标签代码块
        break labelx;     // 一定是最后一行
    }
    
class Break {
    public static void main(String args[]) {
        boolean judgement = true;
        label169:
        {
            label168:
            {
                label167:
                {
                    if (judgement == true) {
                        System.out.println("label167    打印输出");
                        judgement = false;
                        break label167;       // 执行完后,跳过label167代码块
                    }
                    System.out.println("label167    不会打印输出");
                }
                System.out.println("break label167后,直接跳过label167后面的代码块,goto到这里");
                if (judgement == false)  break label169;    // 执行完后,跳过label169代码块
            }
            System.out.println("break label168后,直接跳过label168后面的代码块,goto到这里");
        }
        System.out.println("break label169后,直接跳过label169后面的代码块,goto到这里");
    }
}

输出结果:

label167    打印输出
break label167后,直接跳过label167后面的代码块,goto到这里
break label169后,直接跳过label169后面的代码块,goto到这里
;