如何在条件(if / then)语句中包含范围?

时间:2013-01-30 23:26:48

标签: java range conditional-statements

我正在尝试用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作为命令,但我不知道要写什么等式,以便它在我提到的范围内工作。任何帮助将非常感激。提前谢谢。

3 个答案:

答案 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];
}
相关问题