一、switch后面的整数选择因子包含:
1、int类型的变量,如1、2、12等;
2、short类型的变量;
3、char类型的变量;
4、byte类型的变量;
5、整数表达式,如上面的代码片段中的k + j,或者可以是1+1、1+2。
二、case语句的限制
1、case后面必须是一个整型常量或者常量表达式,如1、2;
2、若用表达式的时候,表达式中每个变量,必须是final的(常量1、2、3等,当然也可以,我们可以把这样的常量看成是final的);
3、case后面不能是非final的变量,比如用"case k“就会报编译错误,因为k不是final类型的变量,如果用"case j"则是正确的。
4、case后面的常量或常量表达式,不能有相同的值。
三、执行顺序
1、在都没有break语句的情况下:
首先会在所有的case语句中,寻找满足条件的语句。如果找到,会从该语句顺序向下执行每个语句;若找不到,会执行default的语句
2、在有break语句的情况下:
找到一个满足条件的case语句执行,若找不到,会执行default的语句。
PS:switch语句中case语句满足后会顺序执行后面的语句,直到遇到break,如case 2中的代码。