switch中的值类型
byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串类型了。
切记 long 类型和Boolean类型是不行的。
eg:
...
long long1 = 1L;
switch(long1){// C
case 1 : System.out.println(" 11 "); break;
case 2 : System.out.println(" 1132 "); break;// D
}
...
以上的例子是错误的,因为switch中是指不能是long 类型,会报错。
case值要是常量
eg.
...
int num = 11;
byte a = 11;
switch(a){// C
case num : System.out.println(" 11 "); break;
case 22 : System.out.println(" 22 "); break;
default:
}
...
以上代码是错误的, 因为num还不是常量。解决办法:
将变量声明为final即可。即
final int num = 11;
switch与case的值要对应
eg:
...
byte a = 12;
switch(a){// C
case 11 : System.out.println(" 11 "); break;
case 223 : System.out.println(" 1132 "); break;// D
}
...
以上的程序也是错误的,因为case的值为223时,超过了byte的最大值;还有,当case中出现俩个值一样时,也是会报错。
忘记写break语句
eg.
...
byte a = 11;
switch(a){// C
case 11 : System.out.println(" 11 "); ;
case 22 : System.out.println(" 22 "); ;// D
}
...
以上的代码,会输出 11,12。原因在于没有写break语句。
default语句
一般地,我们都要在结束时加上default语句。
eg.
...
byte a = 11;
switch(a){// C
case 11 : System.out.println(" 11 "); break;
case 22 : System.out.println(" 22 "); break;
default:System.out.println(" default ");
}
...
暂时就这些了,都是细节啊。