gpt4 book ai didi

java - 而无限循环

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:48:13 24 4
gpt4 key购买 nike

我在这段代码中得到了一个无限循环

我只是想让用户在 while 循环中只重新输入一次整数

问题出在哪里?

System.out.print ("Enter a number: ");

while (!scan.hasNextInt())
System.out.print ("reenter as integer: ");
num = scan.nextInt();

最佳答案

Scanner#hasNextInt()方法不会将光标移过任何输入。因此,它将继续针对您提供的相同输入进行测试,因此如果它失败一次,它将继续失败。所以,如果你输入"abc",那么hasNextInt()会继续对"abc"进行测试,从而进入无穷大循环。

您需要使用 Scanner#next() while 循环中的方法。

此外,您应该考虑对用户输入正确的输入进行最大尝试,这样如果用户继续传递无效输入,这不会进入无限循环。

int maxTries = 3;
int count = 0;

while (!scan.hasNextInt()) {
if (++count == maxTries) {
// Maximum Attempt reached.
// throw some exception
}

System.out.print ("reenter as integer: ");
scan.next();  // Move cursor past current input
}

num = scan.nextInt();

关于java - 而无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923808/

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