Java循环用户输入错误,直到它是一个int / double并区分错误输入

时间:2015-10-14 23:07:09

标签: java while-loop user-input

我有一个问题我有点固定吗?我认为这更像是一个逻辑错误。我的程序整体运行顺利,但我需要修复程序如何解释用户输入的流程。

如果用户输入非数字值或负数,则该程序应报告用户错误。如果用户输入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

0 个答案:

没有答案