package com.wanzixi.test2;
import java.util.Scanner;
public class Demo1Switch {
/*
格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
[break;]
}
1. 首先计算表达式的值。
2. 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句
在执行的过程中,遇到break就会结束。
3. 如果所有的case后面的值和表达式的值都不匹配
就会执行default里面的语句体,然后程序结束掉。
*/
public static void main(String[] args) {
System.out.println("-----------欢迎使用本系统给学生写评语-------------");
while (true) {
System.out.print("请您输入学生的成绩: 输入'999'退出程序:");
System.out.println();
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if (score == 999) {
System.out.println("感谢使用!");
break;
} else if (score > 100 || score < 0) {
System.out.println("输入成绩有误 请重新输入:");
}
int key = 0;
if (score >= 10) {
key = score / 10;
} else {
System.out.println("不及格");
}
switch (key) {
// 学生成绩在60-69则打印“及格”
case 6:
System.out.println("及格");
break;
case 7:
case 8:
// 70-89“良好”
System.out.println("良好");
break;
// 9,
case 9:
case 10:
System.out.println("优秀");
break;
// 60分以下“不及格”。
case 5:
case 4:
case 3:
case 2:
case 1:
System.out.println("不及格");
break;
}
}
}
}
一般这种情况建议用if else更方便
因为switch 语句的 case 后面只能是整形数值;语法如下:
switch(表达式){
case 整型数值1: 语句 1;
case 整型数值2: 语句 2;
......
case 整型数值n: 语句 n;
default: 语句 n+1;
}
如果你非要用switch 语句 可以有两种方式,一种是 先用if 语句将区间转换成某个变量固定的值,然后通过这个值来switch;比如成绩在60和69,定义一个变量 分数=1,然后用分数进行switch(分数){case1:输出及格;break.....}
再有一种就是直接用成绩switch,但是case需要列出所有的成绩;比如case60:case61:.....case69:及格;break;......(但是这种方式不能出现成绩小数)