也是一种分支结构的用法,话不多说,直接上代码:
/*
实现一个功能:
判断学生的成绩所在的等级
>90 -----A
>80 -----B
>70 -----C
>=60 -----D
<60 -----E
*/
import java.util.*;
public class TestSwitch{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个学生的成绩:");
int score = sc.nextInt();
String level="";//等级
switch(score/10){
case 10:level="A";break;
case 9:level="A";break;
case 8:level="B";break;
case 7:level="C";break;
case 6:level="D";break;
case 5:level="E";break;
case 4:level="E";break;
case 3:level="E";break;
case 2:level="E";break;
case 1:level="E";break;
default :level="error";break;
}
System.out.println("您的成绩对应的等级是:"+level);
/*
1.switch后面的(),里面返回的是一个具体的数值:byte ,short,char ,int ,jdk1.5增加了枚举;JDK 1.7之后 可以是String
2.这个数值会依次跟case后面的数值进行比较,只要满足就执行后面的代码,直到遇到break结束
3.在每个分支后面要加上一个关键字break
4.default就是一个备胎的作用。其余的分支假如都没有走,那么一定会走default里面的代码。(类似if多分钟中的else结构)
default可以写在任意的位置上,但是要写break结束语句。
假如放在最后一行,break可以省略不写。(建议写在最后一行--可读性好)
5.switch能解决的,if都能解决,if能解决的 switch不一定能解决。
*/
}
}
优化:
switch(score/10){
case 10:
case 9:level="A";break;
case 8:level="B";break;
case 7:level="C";break;
case 6:level="D";break;
case 5:
case 4:
case 3:
case 2:
case 1:level="E";break;
default :level="error";break;
}