Java 的多选择结构除了if elseif else,switch case语句也能实现多选择。
能用于switch判断的类型有:byte、short、int、char(JDK1.6),还有枚举类型,但从JDK1.7后添加了对String类型的判断,同时case中的匹配值的数据类型必须与switch中的数据类型相同,而且只能是 常量 或者 字面常量。
case
和default
都是switch的分支语句,case语句中 不带break,编译不会报错,但会跳过判断而直接输出case语句块下的内容,直到出现break或者执行到default语句结束switch所有分支语句。
如果没有符合条件的case就执行default下的代码块,default并不是必须的,也可以不写,default不必带上break。
示例:
package com.zctou.structure;
public class SwitchDemo01 {
public static void main(String[] args) {
// switch case多选择结构测试
char grade = 'Z' ;
//
switch (grade) {
case 'A': //case 语句中的值的数据类型必须与变量相同,而且只能是常量或者字面常量
System.out.println("优秀");
break; //break; 是可选的
case 'B': //这 case里没带break; 会出现case穿透现象,无视后面的case匹配,全部输出下一个break前的内容
System.out.println("良好");
//break;
case 'C':
System.out.println("及格");
//break;
case 'D':
System.out.println("不及格");
break;
case 'E':
System.out.println("回炉再造");
break;
default:
System.out.println("你是另外一种\"优秀\"");
}
}
}
输出:
//grade = 'A'时,
优秀
//grade = 'B'时,输出了 case'B','C','D'的内容,直到case'D'的break出现,这就是case穿透。
良好
及格
不及格
//grade = 'Z'时,全部case匹配不成功,输出了default的内容
你是另外一种"优秀"