我想创建一个程序,在其中输入数字和成绩,计算机将仅计算及格分数的平均值,但如果分子或分母为零,会发生什么,我该如何解决这个问题?
public class Grades {
public static void main (String[] args) {
double grade1, grade2, grade3, avg, sum=0;
int counter = 0;
Scanner input = new Scanner(System.in);
System.out.println("Enter your first Grade");
grade1 = input.nextDouble();
if (grade1 >= 90)
{
System.out.println("excellent");
counter++;
sum += grade1;
}
else if (grade1 < 90 && grade1 >= 70)
{
System.out.println("very good");
counter++;
sum += grade1;
}
else if (grade1 < 70 && grade1 >= 60)
{
System.out.println("fair");
counter++;
sum += grade1;
}
else if (grade1 < 60)
{
System.out.println("you fail");
}
System.out.println("Enter your second Grade");
grade2 = input.nextDouble();
if (grade2 >= 90)
{
System.out.println("excellent");
counter++;
sum += grade2;
}
else if (grade2 < 90 && grade2 >= 70)
{
System.out.println("very good");
counter++;
sum += grade2;
}
else if (grade2 < 70 && grade2 >= 60)
{
System.out.println("fair");
counter++;
sum += grade2;
}
else if (grade2 < 60)
System.out.println("you fail");
System.out.println("Enter your third Grade");
grade3 = input.nextDouble();
if (grade3 >= 90)
{
System.out.println("excellent");
counter++;
sum += grade3;
}
else if (grade3 < 90 && grade3 >= 70)
{
System.out.println("very good");
counter++;
sum += grade3;
}
else if (grade3 < 70 && grade3 >= 60)
{
System.out.println("fair");
counter++;
sum += grade3;
}
else if (grade3 < 60)
System.out.println("you fail");
avg=sum/counter;
System.out.println("your average is : "+avg);
}
}
最佳答案
对于此类事情,我们使用异常处理,但如果您是初学者,您可以通过应用 if 条件来检查天气数字或分母是否为零来修复它
else if (grade3 < 60)
System.out.println("you fail");
if(sum == 0 || counter == 0) {
System.out.println("Invalid sum or total count");
} else {
avg = sum / counter;
}
System.out.println("your average is : " + avg);
关于java - 用Java计算平均成绩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314782/