【发布时间】:2020-11-28 17:39:22
【问题描述】:
程序的重点是让用户无休止地输入一定数量的整数(直到他们输入的不是整数),并且对于用户输入的每个整数,它应该检查整数是大于还是小于输入的值。
问题:当程序运行时,一切都很好,直到到达
number = scanner.nextInt();
此时,用户输入了他们的整数,但从未将其放入以下 if 语句中。我希望得到提示而不是答案,但我会尽我所能。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Enter number: ");
int number = 0;
int minNumber = 0;
int maxNumber = 0;
boolean hasInt = scanner.hasNextInt();
if (hasInt) {
number = scanner.nextInt();
if (maxNumber < number) {
maxNumber = number;
}
if (minNumber > number) {
minNumber = number;
}
} else {
System.out.println("Your minimum number: " + number);
System.out.println("Your maximum number: " + maxNumber);
break;
}
} while (true);
scanner.close();
}
}
【问题讨论】:
-
您是否使用调试器来了解发生了什么?
-
是什么让您认为它没有进入
if语句?发生了什么?尝试使用调试器或添加打印输出来检查您的假设。 -
我在整个代码中输入打印语句作为“检查点”,以查看它到达的位置,据我所知,这就是问题开始的地方。
-
输入是什么样的?
-
输入一次输入一个,50
, 75 , a (此处有意中断)
标签: java if-statement input integer