gpt4 book ai didi

java - 需要帮助理解/使用扫描仪 hasNextInt()

转载 作者:行者123 更新时间:2023-11-29 09:27:29 25 4
gpt4 key购买 nike

<分区>

public static int promptUser(Scanner in, String prompt, int min, int max) {
int userTempVal = 0;

do {
userTempVal = in.nextInt();
if (userTempVal < min || userTempVal > max) {
System.out.println(prompt);
}

}while (userTempVal < min || userTempVal > max);

return userTempVal;
}

这是我当前的代码。我基本上需要扫描用户的输入并确保它是最小值和最大值之间的整数。如果它不是 min 和 max 之间的整数,它会显示提示并扫描新的 int。如果用户输入除 int 之外的任何内容(例如 double 或字符串),我当前的代码将失败。当输入不是 int 时,如何让我的代码显示提示并继续 do while 循环?这是我正在上的一门课,讲师暗示我们可以使用 hasNextInt() 函数来解决这个问题,但每次我尝试使用它时,它要么不起作用,要么出现错误。请帮忙,我是一名初学者!

编辑(使用具有 Next Int () 参数):

public static int promptUser(Scanner in, String prompt, int min, int max) {
int userTempVal = 0;

do {
userTempVal = in.nextInt();
if (userTempVal < min || userTempVal > max || !in.hasNextInt()) {
System.out.println(prompt);
}
}while (userTempVal < min || userTempVal > max || !in.hasNextInt());

return userTempVal;
}

我收到此错误 -> 当我键入 int 时,程序停止运行。当我输入一个字符串时: 线程“main”中的异常 java.util.InputMismatchException
在 java.util.Scanner.throwFor(未知来源)
在 java.util.Scanner.next(未知来源)
在 java.util.Scanner.nextInt(未知来源)
在 java.util.Scanner.nextInt(未知来源)
在 MineTest.promptUser(MineTest.java:60)
在 MineTest.main(MineTest.java:24)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com