我有一个问题我有点固定吗?我认为这更像是一个逻辑错误。我的程序整体运行顺利,但我需要修复程序如何解释用户输入的流程。
如果用户输入非数字值或负数,则该程序应报告用户错误。如果用户输入0,那么应该接受它作为一个正确的答案(我还没有弄清楚如何做到这一点,因为我的条件是它是否是一个双倍)。
我试图区分用户是否在反馈中输入负数或字符。到目前为止,我已经做了一个循环来连续提示用户输入一个数字,如果他们没有输入双。虽然我不知道如何接受0作为答案并过滤掉负数。我回到我的流程图,并认为我可能需要使用if-else语句来执行此操作。但是如何在保持循环的同时做到这一点呢?我不完全确定我是如何设计这种格式的。
对这位新手的帮助表示赞赏!谢谢!
while(looping){
// Prompt user to enter how many grades they want averaged
System.out.println("How many grades would you like to average? ");
// Check if the input variables are positive numerical variables
// Or else report to user to input a number
while(!input.hasNextDouble()) //cannot be negative
{
input.next();
System.out.println("Please enter a number: ");
}
gradeNumber = input.nextInt();
// Prompt user to enter the grades
System.out.println("Please enter " + gradeNumber + " grades: ");
// Use a for-loop to control how many loops - reference to gradeNumber
for(gradesCount = 0; gradesCount < gradeNumber; gradesCount++){
// Check if the input variables are numerical variables
while (!input.hasNextDouble())
{
input.next();
System.out.println("Please enter a number: ");
}
gradesInput = input.nextDouble();
finalGrades = finalGrades + gradesInput;
} // end loop