switch相关问题
switch条件中的数据类型:
- byte,short,int,char,枚举 + String(JDK7.0开始支持)
- 当变量值满足指定case时,运行该case中的代码
- 如果没有变量值满足,那么如果有default的话则执行default
- default的位置可以任意的,不一定在最后
- 当default在一些case前边时:
- 如果没有满足的case,则会先执行default的语句,然后会继续执行default后边的case语句,直到遇到break为止
- 如果有满足的case,则执行满足的case,不执行default,并且在遇到第一个break之后退出switch循环
public class SwitchDemo {
public static void main(String[] args) {
int x = 2, y = 3;
switch (x) {
case 3:
y++;
System.out.println("in case 3");
// break;
default:
y++;
System.out.println("in default");
case 4:
y++;
System.out.println("in case 4");
// case 2:
// System.out.println("in case 5");
}
System.out.println("y=" + y);
}
}
运行结果:
in default
in case 4
y=5
总结:
switch语句结束条件:
- 遇到break结束
- 执行到switch语句底部
如果有default,并且不在最后边,则应该先判断是否有匹配的case