【发布时间】:2017-11-22 19:26:51
【问题描述】:
我正在尝试检查来自用户的输入是否为 int。
到目前为止,这是我的代码:
static int readInt(Scanner userInput) {
int intValue = 0;
try {
System.out.print("Please enter a number:");
intValue = Integer.parseInt(userInput.nextLine());
} catch (NumberFormatException ex) {
Input.readInt(userInput);
}
return intValue;
}
问题是:如果我先给它输入不是数字,然后再给它一个数字,它总是返回 0。如果我第一次尝试给它一个数字,它会返回我给它的数字。
我错过了什么? 提前致谢
编辑:我只允许使用 Integer.parseInt 和 Exceptions。
【问题讨论】:
-
您没有将
Input.readInt(userInput);的返回值分配给您的intValue -
考虑将输入代码封装在
while-loop 中,以确保程序仅在收到有效输入后继续前进。 -
如果您只允许使用 Integer.parseInt 和 Exceptions,请编辑您的问题并添加此要求。
标签: java