在java中检查输入是5,10,15,20,25还是30

时间:2013-10-07 00:51:16

标签: java error-handling

JAVA CODE:

我正在尝试检查有人输入5,10,15,20,25或30。 这是抵押贷款计算,这是摊还期,但我也需要它来循环 和错误检查。如果此人输入的内容不是5,10,15,20,25或30,则必须说:

“请输入5,10,15,20,25或30。”

然后循环并再次等待输入。

我知道你可以检查每个int的if语句,但我不知道如何循环 这句话。

3 个答案:

答案 0 :(得分:3)

如果if(x%5==0)是5的倍数,则

true会返回x

如果if(x>0)大于0,则

true会返回x

如果if(x<31)小于31,则

true会返回x

您可以将这些检查与&&运算符结合使用。

答案 1 :(得分:0)

boolean test;
do {
    int x = input;//read input
    test = (x%5 == 0 && x > 0 && x <= 30);
    if(!test) {
        System.out.println("Please input either 5,10,15,20,25 or 30.");
    }
} while(!test);

输入可能类似于:

sc.nextInt();

Scanner上使用System.in

Scanner sc = new Scanner(System.in);//put this code somewhere before entering the do-while loop.

答案 2 :(得分:0)

使用do while循环的完美候选者:

    int tries = 0;
    Scanner in = new Scanner(System.in);
    int x;
    do {
             tries ++;
             if ( tries < MAX_TRIES) {
            System.out.print("Please input either 5,10,15,20,25 or 30.");
            x = in.nextInt();
            System.out.println(); 


         } else {
              System.out.println("maybe you can't use a keyboard.");
              break;
        }
       }while ( ! (x%5 == 0 && x > 0 && x <=30);

基本上这只是说,继续阅读x,直到条件为真。 x > 0 && x <=30给出1到30之间的数字,x%5 == 0过滤掉不是5的倍数的数字