switch多选择结构
- 传统语法
switch (expression) {
case value1:
// 当 expression 的值等于 value1 时执行的代码
break;
case value2:
// 当 expression 的值等于 value2 时执行的代码
break;
case value3:
// 当 expression 的值等于 value3 时执行的代码
break;
default:
// 当 expression 的值与上述所有 case 都不匹配时执行的代码
}
注意:switch语法中的变量类型可以是:
byte、short、int或char;不支持float、double及其包装类Float、Double,不支持boolean及Boolean包装类,不支持基本数据类型数组及对象数组- 从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("位置等级");
}
}
}