问题:switch的表达式是否可以为long?是否可以为string?
答:
在Java 5以前,switch(expr)中,expr只能是byte、short、char、int。
从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型,
从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。
实例说明:
long key = 1;
switch (key) {
case 1:
break;
default:
break;
}
报错: Cannot switch on a value of type long. Only convertible int values or enum variables are permitted
String key = 1;
switch (key) {
case 1:
break;
default:
break;
}
Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted
char key = 'a';
switch (key) {
case 1:
break;
default:
System.out.println(key);
break;
}
运行结果:a
byte key = 'a'; //或者short key = 'a';//或者int key = 'a';
switch (key) {
case 1:
break;
default:
System.out.println(key);
break;
}