多重选择:switch语句 在处理多个选项时,使用多个 else/if 语句会使结构显得很臃肿。Java有一个和C/C++完全相同的switch语句。 例如,如果建立一个如下图所示的包含5个选项的系统,完全
在处理多个选项时,使用多个 else/if 语句会使结构显得很臃肿。Java有一个和C/C++完全相同的switch语句。
例如,如果建立一个如下图所示的包含5个选项的系统,完全可以用使用switch语句完成。
public class Grade {
public static void main(String[] args) {
//输入学生成绩,90分以上为A级,80~89为B级,70~79为C级,60~69为D级,其他都为F级
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生成绩:");
int score = scanner.nextInt();
String grade;
//将输入的成绩除以10的值作为switch语句的条件判断式
switch (score/10) {
case 9:
grade = "A";
break;
case 8:
grade = "B";
break;
case 7:
grade = "C";
break;
case 6:
grade = "D";
break;
default:
grade = "F";
}
System.out.println("这个学生成绩等级为:" + grade + "级");
}
}
//解读:
/*满足条件1时,执行语句1,然后结束switch分支结构 接着执行后续代码;
满足条件2时,执行语句2,然后结束switch分支结构 接着执行后续代码;
满足条件3时,执行语句3,然后结束switch分支结构 接着执行后续代码;
满足条件4时,执行语句4,然后结束switch分支结构 接着执行后续代码;
都不满足,则会执行default中的语句5,然后结束switch分支结构 接着执行后续代码。/*
tips:从Java 7 开始,case标签的类型可以是char、byte、short、int、String、枚举类型。
注意:
- 在switch语句里,如果case标签没有break语句,则会接着执行下一个case分支的语句,直到执行到最后为止,这也就是所说的穿透效果,在Java中并不推荐使用switch语句。
- default一般放在case的最后,也可以不使用default语句,default如果在最后可以省略不写break语句,如果在中间就必须得写break语句,否则会发生穿透效果。
穿透效果示例:
public class Test {
public static void main(String[] args) {
int num = 2;
switch (num) {
case 1:
System.out.println("这是1----");
case 2:
System.out.println("这是2----");
case 3:
System.out.println("这是3----");
case 4:
System.out.println("这是4----");
default:
System.out.println("这啥也不是---");
}
}
}
/*
输出结果为:
这是2----
这是3----
这是4----
这啥也不是---
*/
正常情况下(写了break语句的)输出结果为:
这是2----
如果没写,就会从匹配的case语句那里“一穿到底”,所以在使用时一定不要把break忘了!!!