如果多个输入的输入值为负,则重新提示用户

时间:2018-02-12 21:49:18

标签: java validation for-loop while-loop

我要求用户通过for循环输入5个不同的数字。我的问题是我试图验证所述输入以确保输入负数,并且如果输入负值则重新提示用户输入有效整数。我尝试了两个不同的版本。

(下面的代码:如果我输入一个正值,那么循环将停止。例如:通过输入第一次迭代5,它将只询问一次问题。它忽略迭代2,3,4,5。 )

for (int i = 1; i <= 5; ++i)
    {
        while (day <= 0)
        {
            System.out.println("Enter the amount of sales for day " + i);
            day = keyboard.nextInt();
            total += day; //accumulator
            sales.println("Day " + i + ": " + day);
        }
    }

(以下代码:验证不起作用。用户不会被提示,负数将被存储。)

while (day <= 0) //don't accept negative numbers (less than 0)
    {
        for (int i = 1; i <= 5; ++i)
        {
            System.out.println("Enter the amount of sales for day " + i);
            day = keyboard.nextInt();
            total += day; //accumulator
            sales.println("Day " + i + ": " + day);
        }
    }

1 个答案:

答案 0 :(得分:1)

我更改了while循环,以便始终要求用户输入销售额         除非他们输入的金额大于或等于0.询问您是否有任何问题。

for (int i = 1; i <= 5; ++i)
    {
        while (true)
        {
            System.out.println("Enter the amount of sales for day " + i);
            day = keyboard.nextInt();
            if(day >= 0)
                break;
        }
            total += day; //accumulator
            sales.println("Day " + i + ": " + day);
    }