工作生活Java学习

Java switch case 语句

2019-07-04  本文已影响0人  南风_001

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

语法

switch case语句语法格式如下:
        switch(expression) {
            case value:
            // 语句
            break;// 可选
            case value:
            // 语句
            break;//可选
            // 这里可以根据需要填写任意数量的case语句
            default:// 可选
            // 语句
}

switch 语句中有以下规则:

switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

例子:

public class Test {
    public static void main(String[] args) {
        char grade  = 'C';
        switch(grade) {
            case 'A':
            System.out.println("优秀");
            break;
            case 'B':
            System.out.println("良好");
            break;
            case 'C':
            System.out.println("及格");
            break;
            case 'E':
            System.out.println("差");
            break;
            default:
            System.out.println("未知等级");
            break;
        }
        System.out.println("你的等级是 " + grade);

    }
}

编译后的结果为:

及格
你的等级是 C

如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。

例如:

public class Test {
    public static void main(String[] args) {
    int i = 10;
        switch(i) {
            case 0:
            System.out.println("输出的是:0");
            case 1:
            System.out.println("输出的是:1");
            case 2:
            System.out.println("输出的是:2");
            default:
            System.out.println("输出的是:默认值");

        }
            }
}

编译后的结果为:

输出的是:默认值

如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。

把上个例子中的i= 10,改为i= 0的时候。结果为:

输出的是:0
输出的是:1
输出的是:2
输出的是:默认值

这是因为switch语句只有遇到break的时候才会停下。

如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。

public class Test {
    public static void main(String[] args) {
        int j = 1;
        switch(j) {
            case 0:
            System.out.println("输出的是:0");
            case 1:
            System.out.println("输出的是:1");
            case 2:
            System.out.println("输出的是:2");
            break;
            default:
            System.out.println("输出的是:默认值");

        }

    }
}

编译后的结果为:

输出的是:1
输出的是:2

github地址:Java学习

上一篇 下一篇

猜你喜欢

热点阅读