我正在尝试执行以下java作业,一切似乎都工作正常,除了当我输入数字<4或>10时,它会打印“无效成绩!” “您还没有输入任何数据!”我想要的是只打印“无效成绩!”我试图修复它,但我做不到。有人可以帮我吗?
谢谢
作业: 创建一个程序,询问考试结果并计算平均成绩。成绩是 4 到 10 之间的 float 。程序会询问成绩,直到输入负数。如果用户给出的成绩不是 4 到 10 之间的数字,则会显示文本“无效成绩!”将打印在屏幕上,并且程序会要求另一个等级。最后,程序在屏幕上打印输入的成绩数及其平均数,如示例打印所示。如果没有输入成绩,则会出现“您没有输入任何成绩”的通知。是屏幕上唯一打印的内容。
提示:使用 double 型变量来存储平均值。
程序被写入一个名为 Average 的类。
输出示例
程序计算输入成绩的平均值。 以负整数结束。
Input a grade (4-10): 5
Input a grade (4-10): 6,5
Input a grade (4-10): 7,5
Input a grade (4-10): 7
Input a grade (4-10): 0
Invalid grade!
Input a grade (4-10): -4
4 grades inputted.
Average of the grades: 6.5
代码
import java.util.Scanner;
public class apples {
public static void main(String[] args) {
int inputNumber=0;
int sum;
int count;
double average;
sum = 0;
count = 0;
Scanner reader = new Scanner(System.in);
System.out.println("Program calculates the average of inputted grades.");
System.out.println("Finish with a negative integer.");
System.out.print("Input a grade (4-10): ");
inputNumber = reader.nextInt();
while (inputNumber > 0 && inputNumber>=4 && inputNumber<=10) {
sum += inputNumber;
count++;
System.out.print("Input a grade (4-10): ");
inputNumber = reader.nextInt();
}
if (inputNumber<4 || inputNumber>10) {
System.out.println("Invalid grade!");
}
if (count==0) {
System.out.print("You didn't enter any data!");
}
else {
average = ((double)sum) / count;
System.out.println();
System.out.println(count + " grades inputted.");
System.out.print("Average of the grades: "+ average);
}
}
}
最佳答案
在第二个 if 之前放置一个 else,这样只有当第一个 if 不存在时才会执行:
if (inputNumber<4 || inputNumber>10) {
System.out.println("Invalid grade!");
} else if (count==0) {
System.out.print("You didn't enter any data!");
}
关于java 计算平均数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21932974/