Switch选择结构
-
多选择结构还有一个实现方式就是switch case语句
-
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
-
语法:
switch (/*表达式*/){ //当表达式的值与下列case对应的value相等时,便会执行相应的语句 case value1: // 语句1 break; // 可选 case value2: // 语句2 break; // 可选 case value3: // 语句3 break; // 可选 default: // 可选 // 语句4 }
-
switch语句中的变量类型可以是:
- byte,short,int或者char
- 从Java SE 7 开始,switch支持字符串String类型了
- 同时case标签必须为字符串常量或字面量
运行机制
- switch语句括号中的表达式的值会依次与case的标签进行比较,若相匹配,则执行该语句,若该语句中不含break语句,则将剩余所有语句执行完,直到遇到break
- 若switch语句未能在case标签中找到与表达式相匹配的值,则执行default中的语句
实例演示
代码1:
char grade = 'C';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C': // 匹配成功,执行该case下的语句
System.out.println("及格");
// 未设置break断点,故之后的代码将继续执行
case 'D':
System.out.println("不及格");
// 未设置break断点,故之后的代码将继续执行
default:
System.out.println("成绩未知");
}
演示:
及格
不及格
成绩未知
代码2:
String name = "小明";
switch (name){
case "小张":
System.out.println("我是小张");
break;
case "小王":
System.out.println("我是小王");
break;
case "小李":
System.out.println("我是小李");
break;
case "小陈":
System.out.println("我是小陈");
break;
// 因为所有的case标签都不匹配,所以直接执行default语句
default:
System.out.println("查无此人");
}
演示:
查无此人