@TOC一、语法结构
语法结构
switch(表达式){
case 值1:代码块1;break;
case 值2:代码块2;break;
default:代码块3;break;
}
代码解释
表达式:
取值类型:byte、short、int、枚举(jdk1.5)、字符串(jdk1.7);注意选择jdk版本;
值1、2:表达式能够相对应的值
break:跳出整个分支结构,不在执行下面的语句;
default:表示若表达式的值和case后面的值都不相等,执行该代码;
代码示意图
switch(10){
case 10:System.out.println(“ten”);break;
case 20:System.out.println(“twenty”);break;
default:System.out.println(“无效数据”);break;
}
控制台输出结构:
javac 编译java文件;java 执行编译后的class文件;
注意事项
1、break 可以省略:当表达式的值找到第一个case之后 执行后面的代码;不退出继续执行后面的代码块,直到break或者执行完毕整个程序;
代码如下:
switch(10){
case 10:System.out.println("ten");
case 20:System.out.println("twenty");break;
default:System.out.println("无效数据");break;
}
为什么会输出20:因为在j执行这个代码时,在内存中会有一个变量(temp)来保存表达式和case的比较结果:10=10>>true;由于没有break,代码会继续向下执行,但是变量temp已经为true了,不会继续和case比较了,会直接执行后面的代码>>break跳出;
2、default:它位置不一定在最后代码如下:
switch(20){
case 10:System.out.println("ten");break;
default:System.out.println("无效数据");break;
case 20:System.out.println("twenty");break;
}
运行截图:
3、case后面的值:
值1与值2不能相同;
值1与值2的可以不同类型:
switch(20){
case 10:System.out.println("ten");break;
case 'v':System.out.println("twenty");break;
default:System.out.println("无效数据");break;
}