面试的时候总是冷不丁的来一个,Switch里面表达式支持String吗?支持double吗?说实话有些东西确实是模模糊糊,今天有空就整理一下。
第一,支持的数据类型: switch 传入的是整数类型的变量,因此支持 byte,short,int,char类型+枚举类型。另外,现在最新的jdk7里面已经做了修改,可以支持String类型了。再有这个问题的时候,我们可以说YES了。
第二,执行顺序:进入判断语句后,首先找到匹配项,进入执行语句,如果没有break,则后面的全部执行。
第三,使用说明:有的东西不一定好用,在java开发过程中很少使用switch,if-else使用的更普遍。当然有些资料也介绍说后者的效率更高。
public class SwitchTest {
public static void main(String[] args) {
int a = 1;
// switch 传入的是整数类型的变量,因此支持 byte,short,int,char类型+枚举类型。
// jdk7 里面已经支持String类型的数据,这个面试的时候可以说yes了
// 执行顺序:首先找到匹配项,进入执行语句,如果没有break,则后面的全部执行。
switch (a) {
case 2:
System.out.println("2");
case 1:
System.out.println("1");
case 3:
System.out.println("3");
default:
System.out.println("NO NUMBER");
}
// 枚举类型实例
Color c = Color.RED;
switch (c) {
case RED:
System.out.println("red");
break;
case GREEN:
System.out.println("green");
break;
case BLANK:
System.out.println("blank");
break;
case YELLOW:
System.out.println("yellow");
break;
}
}
public enum Color {
RED, GREEN, BLANK, YELLOW
}
}
result:
1
3
NO NUMBER
red