java - 我该如何编写这个评分系统?

标签 java if-statement system statements

其他答案都没有给我任何关于在我的困境中该怎么做的指示,所以我想我应该开始一个新问题。

我想编写一个程序,让某人输入他们的 A、B 和 C 数,然后输出他们的分数。

以下是最低要求:

EA: 12 As, 2 Bs   
HA: 6 As, 6 Bs, 2 Cs
CA: 8 Bs, 5 Cs
SA: 12 Cs
PA: 6 Cs

我尝试了几种方法,但没有任何效果,或者我预见到代码会很长且过于复杂。

我遇到的一个主要障碍是我的标准通常将其分为两个等级。

例如:

//EA Grade

if (numA >= 11 && numB >=1)
{ grade = "EA"; }

//HA Grade

if (numA >=5 && numB >=5)
{ grade = "HA"; }
<小时/>

问题在于,如果 A 和 B 的数量使他们有资格获得 EA,那么他们也有资格获得 HA。这显然是不可取的。我该如何解决这个问题?

最佳答案

The problem there is that if the number of As and Bs qualify them for an EA, they'll also qualify for a HA. This is obviously not desirable. How would I go about fixing this problem?

问题特定部分的答案是:使用else:

if (numA >= 11 && numB >=1) {
    grade = "EA";
} else if (numA >=5 && numB >=5) {
//^^^^------------------------------ here
    grade = "HA";
}
// ...and so on...

另一种方法是将具有每个级别要求的对象放在一个数组中,按“最佳”等级(EA,如果我理解正确的话)排序,然后循环遍历这些对象,检查该人符合哪个等级并采取第一个等级。哪一个更适合您正在做的事情取决于您,两者在可维护性和清晰度方面各有利弊。

关于java - 我该如何编写这个评分系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373989/

相关文章:

c++ - 有没有办法不等待 system() 命令完成? (在三)

perl - 我如何处理由我从 Perl 启动的程序引发的对话框?

c# - 如何计算最低系统要求?

JavaScript EJB变量字段保存值?

java - 使用主要监听器和构建数组来播放视频 (VLCJ) 的程序

c++ - 检查项目是否在列表中的简单方法?

javascript - 简写 if 语句始终返回 'false' 而不是分配的值

java - 如何使用Java在给定路径下创建新文件夹?

java - 从 double 转换为 int 并不总是只删除小数部分

java - 使用工厂方法使用 @JsonCreator 反序列化枚举