Java 如何在if/else语句中检查整数和小于或等于100
我有一个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()&&
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`
}