我的程序需要多个等级(来自记事本文件),然后是多个等级百分比,并将它们保存到字母等级。然后我打印出多少A,B等等。我还需要找到最高和最低等级。
我想要做的是在我的成绩检查循环结束时,将当前成绩保存到变量中,以便稍后比较所有变量以查看哪个是最高和最低。问题是,我不知道会输入多少等级,所以我需要一个无限可能的变量。以下是相关的代码部分:
while (scores > 0 && in.hasNextInt()) {
int grade = in.nextInt();
if (grade >= 90) {
A++;
} else if (grade >= 80) {
B++;
} else if (grade >= 70) {
C++;
} else if (grade >= 60) {
D++;
} else {
F++;
}
scores--;
scoreTotals = (scoreTotals + grade);
}
我想做这样的事情:
int variableCount = 1;
int grade(variableCount) = grade;
variableCount++;
然后继续比较我的循环所做的变量以确定最低和最高。
我通过使用变量来查找定义变量,但我找不到任何东西。我在这里走正路吗?
答案 0 :(得分:2)
我建议你制作两个存储最高和最低的变量,当你经历这个循环时,如果找到一个更大或更小的变量,就更新它们。
尝试:
int highest = 0;
int lowest = 100;
while (scores > 0 && in.hasNextInt()) {
int grade = in.nextInt();
if (grade >= 90) {
A++;
} else if (grade >= 80) {
B++;
} else if (grade >= 70) {
C++;
} else if (grade >= 60) {
D++;
} else {
F++;
}
if (grade > highest) {
highest = grade;
}
if (grade < lowest) {
lowest = grade;
}
scores--;
scoreTotals = (scoreTotals + grade);
}
答案 1 :(得分:1)
你不需要太复杂。
int highest = Integer.MIN_VALUE;
int lowest = Integer.MAX_VALUE;
while (...)
{
// your existing stuff...
highest = Math.max(highest, grade);
lowest = Math.min(lowest, grade);
}
最后,highest
和lowest
将是最高和最低等级。