使用以下方法:

public void localsetValue(String UserInput)
{
    System.out.println("Enter New Value:");
    while (!console.hasNextInt()){
            console.next();
            System.out.println("Must be a number.");
        }
        tempInt = console.nextInt();
        console.nextLine();



    while (tempInt <0) {
        System.out.println("Value must be positive.");
        tempInt = console.nextInt();
    }
    SetSpecificValue(UserInput.toLowerCase(), tempInt);
}


第一个while循环检查用户输入的有效int值;这很好。

第二个while循环检查用户输入的是正数;这也可以,但是此时他们可以输入字母,并抛出异常。

对于Java还是一个新手,有没有办法将这两项检查结合起来?

最佳答案

只需使用相同的while循环,就可以了。

在这里,如果用户输入了int以外的内容,或者输入的int是负数,我们将继续循环。

int tmpInt = 0;
boolean flag = false;
while ((flag = !console.hasNextInt()) || (tmpInt = console.nextInt()) < 0){
    if (flag) {
        console.next();
        flag = false;
    }
    System.out.println("Value must be a positive integer !");
}

关于java - 结合hasNextInt和大于/小于X的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36448723/

10-11 17:54
查看更多