switch多选择结构

  • 传统语法
switch (expression) {
    case value1:
        // 当 expression 的值等于 value1 时执行的代码
        break;
    case value2:
        // 当 expression 的值等于 value2 时执行的代码
        break;
    case value3:
        // 当 expression 的值等于 value3 时执行的代码
        break;
    default:
        // 当 expression 的值与上述所有 case 都不匹配时执行的代码
}

注意:switch语法中的变量类型可以是:

  • byteshortintchar;不支持floatdouble及其包装类FloatDouble,不支持booleanBoolean包装类,不支持基本数据类型数组及对象数组
  • 从Java 7+开始支持字符串String类型了;Java 16+支持Class类型和密封类的子类
  • 同时case标签必须为字符串常量或字面量,必须与变量类型兼容。若变量是int类型,case标签就只能是int类型的字面量或者常量表达式。若变量是String类型,case标签则必须是String字面量或者String常量。
  • 示例代码
package com.xxxx.structure;

public class SwitchDemo {
    public static void main(String[] args) {
        //
        char grade = 'C'; /*输出为:及格 再接再厉 挂科  case穿透现象,先匹配C为及格,
                          由于其后没跟break,后面的会全部输出直到遇到break或全部输出结束*/
        switch (grade){
            case 'A':
                System.out.println("优秀");
                break;//不写break,先匹配,从匹配项开始往后全输出
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
            case 'D':
                System.out.println("再接再厉");
            case 'E':
                System.out.println("挂科");
            default:
                System.out.println("位置等级");
        }
    }
}