switch 语句是多路分支语句,基本语法如下:
switch(exper)
{
case value1;
执行语句;
break;
case value2;
执行语句;
break;
.......
default:
执行语句;
break;
}
一、在switch(exper)语句中exper表达式的类型只能是byte,short,int和char这四种类型。
如:
double a = 13.6;
switch(a) //编译出错,类型不匹配。
{
..........
}
二、case(value)语句中value为常量,各个case语句中的value表达式的值不同。
如:
int a = 13;b = 12;
switch(a) //编译出错,类型不匹配。
{
case 1: //合法
System.out.println("1");
break;
case b: //编译出错,y不是常量
System.out.println("b");
break;
case 1: //编译出错,不允许出现重复的case表达式
System.out.println("1");
break;
}
三、在switch语句中最多只能有一个default语句,且是可选的,当switch表达式的值不与任何case语句匹配时,程序执行default语句,如果没有default语句,程序直接跳出switch语句。default语句可以放在switch语句中的任何位置。
四、如果switch语句表达式与某个case表达式匹配,或者与default匹配,就从这个case语句或default语句开始执行,如遇break语句出,否则一次执行后续case语句,不再检查case表达式的值。
如:
int a =5;
switch(a)
{
default:
System.out.println("nono");
case 1:
System.out.println("a");
//break;
case 2:
System.out.println("b");
//break;
case 3:
System.out.println("c");
break;
case 4:
System.out.println("d");
}
打印结果为: nono
a
b
c