gpt4 book ai didi

java - 循环异常处理

转载 作者:行者123 更新时间:2023-12-02 04:10:34 27 4
gpt4 key购买 nike

我尝试在循环中使用 try-catch 语句,以便要求用户输入正确的值,直到完成。我目前正在 while(true) 循环内完成此操作,但我们的讲师既不鼓励又限制这样做。谁能告诉我用一段示例代码执行此操作的另一种方法?

我知道这不是最有效的方法。但到目前为止,这是我的问题。任何帮助将不胜感激

class Players {
private static Map<String, Integer> golferInfo = new LinkedHashMap<>(Main.playCount);
static Scanner uInput = new Scanner(System.in);

static void addPlayers(String player) {
String newPlayer = player;

while (true) {
try {
if (!golferInfo.containsKey(newPlayer)) {
golferInfo.putIfAbsent(newPlayer, 0);
break;
} else {
System.out.println("Name currently exists please enter a new name");
newPlayer = uInput.next();
}
} catch (InputMismatchException e) {
System.out.println("Please enter an appropriate name");
}
}
}
}

最佳答案

基本上,您使用 if 语句作为循环不变量,而不是循环条件本身。为了弥补这一点,您可以反转 if 语句的逻辑,使用 try/catch 将扫描保持在循环内,并将 newPlayer 放入循环中。 > 成功扫描后进入循环后的列表。因此,我认为您可以使用类似以下代码的代码:

while (golferInfo.containsKey(newPlayer)) {
System.out.println("Name currently exists please enter a new name");
try {
newPlayer = uInput.next();
} catch (InputMismatchException e) {
System.out.println("Please enter an appropriate name");
}
}
golferInfo.putIfAbsent(newPlayer, 0);

关于java - 循环异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56691416/

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