我正在尝试执行以下java赋值,每件事情似乎都很好,除非我放置了一个number<4或>10,它会同时打印“无效的等级!”“你没有输入任何数据!”我只想打印“无效分数!”我试着修好它,但我做不到。有谁能帮我吗?
谢谢,
作业:创建一个程序,要求考试结果,并计算平均成绩。分数是4到10之间的浮点数。程序要求分数直到输入负数为止。如果用户给出的分数不是介于4到10之间的数字,则文本“无效等级!”将打印在屏幕上,程序要求另一个等级。最后,程序在屏幕上打印输入的等级数和它们的平均平均值,如示例打印所示。如果没有输入分数,则通知“您没有输入任何年级”。是唯一印在屏幕上的东西。
提示:双类型变量将用于存储平均值的值。
程序被写入一个名为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);
}
}
}
发布于 2014-02-21 11:33:27
是的,一个if - else
在这里会有帮助,但你把它放在哪里也很重要。
while (inputNumber > 0) {
if (inputNumber<4 || inputNumber>10) {
System.out.println("Invalid grade!");
} else {
sum += inputNumber;
count++;
}
System.out.print("Input a grade (4-10): ");
inputNumber = reader.nextInt();
}
发布于 2014-02-21 11:22:05
在第二个if之前放一个其他的,所以只有在第一个没有完成的情况下才会完成:
if (inputNumber<4 || inputNumber>10) {
System.out.println("Invalid grade!");
} else if (count==0) {
System.out.print("You didn't enter any data!");
}
发布于 2014-02-21 11:27:51
当你用负整数结束时,inputNumber总是小于4,所以
if (inputNumber<4 || inputNumber>10) {
System.out.println("Invalid grade!");
}
永远都是真的。
将其更改为以下内容(稍微容易阅读):
do {
System.out.print("Input a grade (4-10): ");
inputNumber = reader.nextInt();
if (inputNumber<4 || inputNumber>10) {
break ; //
}
sum += inputNumber;
count++;
}while (count <= 4) {
if (count==0) {
System.out.print("You didn't enter any data!");
}
https://stackoverflow.com/questions/21932974
复制相似问题