Switch语句:
多选择结构还有一个实现方式就是 switch case 语句
switch case 语句判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支。
switch语句中的变量类型可以是:
1.byte、short、int、或者char
2.从JavaSE 7开始 switch支持字符串String类型了,1.5开始可以是枚举,表达式结果可以是字符串。(字符本质还是数字)
3.同时case标签必须为字符串或者字面量。
case穿透现象:switch语句会匹配一个具体的值,匹配成功返回当前case值,然后根据是否有break(终止)语句,判断是否继续输出,如果没加break语句它会全部输出,知道遇见break为止。
语法:
switch (expression) {
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default: //可选
//语句
}
1 package com.duan.struct; 2 3 public class SwitchDemo01 { 4 public static void main(String[] args) { 5 //case穿透 碰见break才会停止,要不然在匹配到的语句与break之前的语句都会输出。所以每写完一个case,把break加上。 6 //switch 匹配一个具体的值,若都不匹配的话,输出默认值 7 char grade = 'C'; 8 9 switch (grade) { 10 case 'A': 11 System.out.println("优秀"); 12 break;//可选 13 case 'B': 14 System.out.println("良好"); 15 break;//可选 16 case 'C': 17 System.out.println("及格"); 18 break;//可选 19 case 'D': 20 System.out.println("再接再厉"); 21 break;//可选 22 case 'E': 23 System.out.println("挂科"); 24 break;//可选 25 default: 26 System.out.println("未知等级"); 27 } 28 } 29 30 31 }
JDK7以后支持比较字符串:
1 package com.duan.struct; 2 3 public class SwitchDemo02 { 4 public static void main(String[] args) { 5 String name = "雷伟"; 6 //JDK7的新特性,表达式结果可以是字符串 7 //字符的本质还是数字 8 9 //反编译 java---class (字节码文件)---反编译(IDEA) 10 11 switch (name) { 12 case "雷伟": 13 System.out.println("雷伟"); 14 break;//记得加上 15 case "断浮": 16 System.out.println("断浮"); 17 break; 18 default: 19 System.out.println("还是睡觉吧!"); 20 } 21 } 22 }