switch语句(1)
2018-04-22 本文已影响7人
张轻舟
switch语句
1、switch语句由一个控制表达式和多个case标签组成。
2、switch控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。
3、switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
4、default在当前switch找不到匹配的case时执行。default并不是必须的。
5、case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
switch语法
switch (表达式) {
case 条件1:
语句1;
break;
case 条件2:
语句2;
break;
...
default:
语句;
}
1.1.switch参数范围
switch(A),括号中A的取值可以是byte、short、int、char、String,还有枚举类型,应用举例:
//(1)byte
byte baction=2;
switch (baction)
{
case 1:System.out.print(baction);break;
case 2:System.out.print(baction);break;
}
//(2)short
short saction=3;
switch (saction)
{
case 1:System.out.print(saction);break;
case 3:System.out.print(saction);break;
}
//(3)int
int iaction=4;
switch (iaction)
{
case 1:System.out.print(iaction);break;
case 4:System.out.print(iaction);break;
}
//(4)char
char caction='a';
switch (caction)
{
case 1:System.out.print(caction);break;
case 'a':System.out.print(caction);break;
}
//(5)String
String straction="abc";
switch (straction)
{
case "1":System.out.print(straction);break;
case "abc":System.out.print(straction);break;
}
//(6)枚举
String fullStr="00000000000000";
CompletedProgressEnum action=CompletedProgressEnum.basic;
StringBuilder sb = new StringBuilder(fullStr);
switch (action)
{
case basic:sb.replace(0, 2,CompletedProgressEnum.basic.getValue()); break;
case edu:sb.replace(2, 4,CompletedProgressEnum.edu.getValue());break;
}
注意:long类型不能作为switch参数。
1.2.case子句
case B;case是常量表达式,也就是说B的取值只能是常量(需要定义一个final型的常量)或者int、byte、short、char(比如1、2、3、200000000000(注意了这是整型))。
如果没有符合的case,就执行default,default为非必选项。