- 对百分制成绩评定等级
(100, +∞):超出范围
[90, 100]:优秀
[80, 90):良好
[70, 80):中等
[60, 70):及格
[0, 60):不及格
(-∞, 0):超出范围
(一)编程实现
- 思路:有多少种情况,就并列写多少个单分支,分支之间相互独立
- 第1个分数段:score>100,score∈(100,+∞)-超出范围
- 第2个分数段:90≤score≤100,score∈[90,100]-优秀
- 第3个分数段:80≤score<90,score∈[80,90)-良好
- 第4个分数段:70≤score<80,score∈[70,80) - 中等
- 第5个分数段:60≤score<70,score∈[60,70) - 及格
- 第6个分数段:0≤score<60,score∈[0,60) - 不及格
- 第7个分数段:score<0,score∈(−∞,0) - 超出范围
- 在
net.huawei.p02.t03
创建Task03_1
- 怎么解决这个问题呢?很简单,在处理部分之前将level初始化为空字符串
package net.huawei.p02.t03;
import java.util.Scanner;
/**
* 功能:采用并列式多分支结构评定成绩等级
* 作者:华卫
* 日期:2022年03月31日
*/
public class Task03_1 {
public static void main(String[] args) {
// 声明部分
int score;
String level;
Scanner sc = new Scanner(System.in);
// 输入部分
System.out.print("score = ");
score = sc.nextInt();
// 处理部分
level = "";
if (score > 100) level = "超出范围";
if (score >= 90 && score <= 100) level = "优秀";
if (score >= 80 && score < 90) level = "良好";
if (score >= 70 && score < 80) level = "中等";
if (score >= 60 && score < 70) level = "及格";
if (score >= 0 && score < 60) level = "不及格";
if (score < 0) level = "超出范围";
// 输出部分
System.out.println(level);
}
}
- 运行程序,查看结果(测试七种情况)
- 总结:并列式多分支结构,优点是易于理解,但缺点是效率低(思考一下,为什么效率低)。
- 其实,这个程序可以作点优化,因为成绩大于100分或小于0分都是超出范围,所以可以将这两个并列的分之合而为一。