gpt4 book ai didi

java - 如何避免这种无限的 do-while 循环?

转载 作者:行者123 更新时间:2023-12-01 18:40:00 27 4
gpt4 key购买 nike

我需要用户输入一个整数x,例如0<=x<=4,并需要用户重试,直到最终插入有效的整数。

这是我的代码:

do {
System.out.println("Input an integer number between 0 and 4 (inclusive): ");
if (in.hasNextInt()) {
n = in.nextInt();
}

if (n >= 0 && n <= 4) {
valid = true;
}
} while (!valid);

我尝试插入“s”,但一旦按下 Enter 键,循环就会继续打印 System.out.println 打印的字符串。我该如何解决这个问题?

最佳答案

不要使用has方法,除非你知道自己在做什么; nextInt 方法将阻塞,直到用户输入内容。如果他们输入了非整数,那么你会得到一个异常;这通常就是您想要的。如果您想优雅地处理(例如,打印给他们输入错误内容的用户)非完整输入,您可以捕获该异常并将其视为错误的流程,然后进行改进,或者更新背后的想法这段代码表明,如果您也可以处理非整数输入,那么您实际上根本不需要整数;在这种情况下,请改为调用 .next(),如果它是一个整数,则通过 Integer.parseInt 将其解析为整数,否则,说明用户输入了一个整数无效值并继续。在任何情况下,您都不需要 has 方法,真的。

关于java - 如何避免这种无限的 do-while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59952480/

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