我正在尝试用Java编写一个程序,当所有季度的成绩,以及中期和决赛的成绩都在时,它会返回一个字母等级。到目前为止这就是它的样子:
public static void main (String args[])
{
System.out.println("To figure out final grade answer these questions. Use only numbers, and include decimal points where applicable");
Scanner g = new Scanner(System.in);
System.out.println("What was your quarter one grade?");
int o = g.nextInt();
System.out.println("What was your quarter two grade?");
int t = g.nextInt();
System.out.println("What was your quarter three grade?");
int h = g.nextInt();
System.out.println("What was your quarter four grade?");
int r = g.nextInt();
System.out.println("What was your grade on the midterm?");
int m = g.nextInt();
System.out.println("What was your grade on the final?");
int f = g.nextInt();
double c = 0.2 * o + 0.2 * t + 0.2 * h + 0.2 * r + 0.1 * m + 0.1 *f;
if(c >= 95)
{
System.out.println("A+");
}
else if(c = ?)
{
System.out.println("A");
}
}
}
我想在代码中的最后一个if语句中显示90到94的范围。我被推荐使用Math.random作为命令,但我不知道要写什么等式,以便它在我提到的范围内工作。任何帮助将非常感激。提前谢谢。
答案 0 :(得分:4)
由于您已在第一个语句中测试c >= 95
,因此只需检查下限:
if(c >= 95) { /* A+ */ }
else if(c >= 90) { /* A */ }
else if(c >= 85) { /* A- */ }
...
答案 1 :(得分:0)
if(c >= 95)
{
System.out.println("A+");
}
else if(c >= 90 && c <=94)
{
System.out.println("A");
}
编辑你可以删除&& c <=94
如果你想要已经检查了上限
答案 2 :(得分:0)
这是一种略有不同的动态生成成绩的方法,
private static final String[] constants = {"F","D","C","B","A"};
public String getGrade(float score) {
if(score < 0)
throw new IllegalArgumentException(Float.toString(score));
if((int)score <= 59)
return constants[0];
if((int)score >= 100)
return constants[4];
int res = (int) (score/10.0);
return constants[res-5];
}