http://hi.baidu.com/lifa868/blog/item/39898c4e4dd15d3eaec3ab7d.html
“开关”switch是一个选择语句。根据一个整数表达式的值,从一系列的语句中选出一个来执行。
一、一般的写法如下
final int j = 1;
int k = 12;
float l = 1;
switch ( k + j)
{
case 1:
System.out.println("in case 1");
break;
case 2:
System.out.println("in case2");
break;
default:
System.out.println("in default");
break;
}
int k = 12;
float l = 1;
switch ( k + j)
{
case 1:
System.out.println("in case 1");
break;
case 2:
System.out.println("in case2");
break;
default:
System.out.println("in default");
break;
}
二、switch后面的整数选择因子的限制
-
可以是int类型的变量,如1、2、12等。
-
可以是short类型的变量。
-
可以是char类型的变量。
-
可以是byte类型的变量。
-
可以是整数表达式,如上面的代码片段中的 k + j,或者可以是1+1、1+2。
三、case语句的限制
-
case后面必须是一个整型常量或者常量表达式,如1、2,若用表达式的时候,表达式中每个变量,必须是final的(常量1、2、3等,当然也可以,我们可以把这样的常量看成是final的)。
-
case后面不能是非final的变量,比如用" case k“就会报编译错误,因为k不是final类型的变量,如果用" case j"则是正确的。
-
case后面的常量或常量表达式,不能有相同的值。
四、执行顺序
在都没有break语句的情况下:
首先会在所有的case语句中,寻找满足条件的语句。
如果找到,会从该语句顺序向下执行每个语句;若找不到,会从第一段开始,向下顺序执行每一段语句。
在有break语句的情况下:
- 找到一个满足条件的case语句执行,若找不到,会执行default的语句。