用swtich语句编写程序,给学生写评语,若学生成绩在60-69之间则打印“及格”,70-89为“良

用swtich语句编写程序,给学生写评语,若学生成绩在60-69之间则打印“及格”,70-89为“良好”,90-100为“优秀”,60分以下为“不及格”
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;......(但是这种方式不能出现成绩小数)