如何在if/else语句中检查整数且小于或等于100

Aft*_*360 0 java if-statement java.util.scanner

我在条件中有一个带有扫描器的if/else语句,以及检查输入为100或更少的&&语句.它是这样的:

Scanner input = new Scanner(System.in);

if(input.hasNextInt() && avgBefore <= 100) {
    avgBefore = input.nextInt();                
}
Run Code Online (Sandbox Code Playgroud)

但如果我把一个数字超过100,它仍然接受它.有帮助吗?

Jon*_*eet 5

您在为其分配新值之前检查该值.您需要分配值nextInt(),然后检查它是否在范围内.例如:

if (input.hasNextInt()) {
    int candidate = input.nextInt();
    if (candidate <= 100) {
        avgBefore = candidate;
    } else {
        // Whatever you want to do on invalid input
    }
}
Run Code Online (Sandbox Code Playgroud)

这是假设你想避免分配无效值avgBefore.如果这不是问题,您可以使用:

if (input.hasNextInt()) {
    avgBefore = input.nextInt();
    if (avgBefore > 100) {
        // Whatever you want to do on invalid input
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @DanielGee:*每个人*都会犯错误.永远不要害怕因为他们众所周知而纠正某人.但是,在纠正某人时是否要小心,不管他们是否为人所熟知. (3认同)