Switch用法
(1)语法定义
switch(变量){
case 常量1:
执行内容;
break;(可选)
case 常量2:
执行内容;
break;(可选)
default (可选)
执行内容;
}
//break 是可选择项,可写可不写
//default 是可选择项,可写可不写
//default 位置不是固定的,可任意选择位置
switch(变量){
default (可选)
执行内容;
case 常量1:
执行内容;
break;(可选)
case 常量2:
执行内容;
break;(可选)
}
case 后可以写的常量
jdk版本 | 数据类型 |
---|---|
jdk(1.0-1.4) | byte,short,int,char; |
jdk(1.5) | byte,short,int,char,enum(枚举); |
jdk(1.7) | byte.short,int,char,enum,String; |
执行流程
switch内的变量和case后的常量进行比较,如果相同则执行后面的语句,遇到break,或是执行完所有内容,结束运行
特殊说明
1.default:是默认匹配,如过执行到default项,后面的语句一定会执行;
2.default:如果写在所有case语句的上面,没有break,那下面的case的常量无论是否匹配都会被执行,
直到在某个case中遇到break或是执行完整个switch,才结束执行;
3.当某个case 后的常量匹配后,如果执行语句最后没有break,则这个case下面的case无论是否匹配,都会被执行,并且会向下传递,直到遇到某个case里面的break,或是执行完所有的case里面的内容,才结束Switch语句。
穿透
switch中代码相同的case是可以归并的,类似于在if-else的Boolean中使用"||"。
int h= 0;
switch(h) {
case 0:
case 1:
case 3:
case 4:
System.out.println("都小于5");
break;
case 5:
System.out.println("等于5");
break;
case 6:
case 7:
case 8:
case 9:
System.out.println("都大于5,小于10");
break;
default:
System.out.println("都是数字");
}
小例子
int x = 2,y=3;
switch(x)
{
default:
y++;
case 3:
y++;
break;
case 4:
y++;
}
System.out.println("y="+y);
=======================
输出结果y=5;
此文章纯属个人总结,如有问题,欢迎评论指正;