java中break的用法

来源:互联网 发布:淘宝职位仓库打包招聘 编辑:程序博客网 时间:2024/06/15 23:22

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=0j=0 j=1 j=2 j=3 j=4 j=5 i=1j=0 j=1 j=2 j=3 j=4 j=5 i=2j=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到这里
0 0