其他答案都没有给我任何关于在我的困境中该怎么做的指示,所以我想我应该开始一个新问题。
我想编写一个程序,让某人输入他们的 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/