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

Java 如何在if/else语句中检查整数和小于或等于100,java,if-statement,java.util.scanner,Java,If Statement,Java.util.scanner,我有一个if/else语句,在条件中有一个扫描器,还有一个&&语句检查输入是否为100或更少。事情是这样的: Scanner input = new Scanner(System.in); if(input.hasNextInt() && avgBefore <= 100) { avgBefore = input.nextInt(); } 扫描仪输入=新扫描仪(System.in); 如果(input.hasNextInt()&&

我有一个if/else语句,在条件中有一个扫描器,还有一个&&语句检查输入是否为100或更少。事情是这样的:

Scanner input = new Scanner(System.in);

if(input.hasNextInt() && avgBefore <= 100) {
    avgBefore = input.nextInt();                
}
扫描仪输入=新扫描仪(System.in);

如果(input.hasNextInt()&&avgBefore您在为其分配新值之前正在检查该值。您需要从
nextInt()
分配该值,然后检查该值是否在范围内。例如:

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

在为其指定新值之前,您正在检查该值。您需要从
nextInt()
中指定该值,然后检查该值是否在范围内。例如:

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

如前所述,您必须分配值,然后检查是否为,如前所述,您必须分配值,然后检查是否为,这是因为您在输入值之前检查了
avgBefore
。您在断言/检查什么?
input.hasNextInt()
avgBefore
?这是因为您在输入值之前检查了
avgBefore
。您在断言/检查什么?
input.hasnetint()
avgBefore
?太棒了,完全有道理。对不起,我只学了6个月的java。这很有帮助。在第二批代码中,if语句不应该说avgBefore>100?视为候选者没有定义?@JonSkeet@DanielGee:是的,绝对是-错别字,对不起。@JonSkeet从没想过我会纠正#1用户这样吧!@DanielGee:每个人都会犯错误。永远不要因为某个人的知名度而害怕纠正他。但是,无论他是否知名,纠正他时都要小心。太棒了,完全有道理。对不起,我学java才6个月。这帮了大忙。在第二批代码中,如果政治家“不要说avgBefore>100?视为候选对象未定义?”JonSkeet@DanielGee:是的,绝对-错别字,对不起。@JonSkeet从没想过我会纠正#1用户,所以!@DanielGee:每个人都会犯错误。永远不要因为别人出名就害怕纠正他们。无论别人出名与否,纠正他们时都要小心,然而。
if(input.hasNextInt() && (avgBefore = input.nextInt()) <= 100) { // assign the value and immediately test if is <= 100
    // whatever you want to do with `avgBefore`
}