gpt4 book ai didi

java - 如何在发生InputMismatchException后重试输入?

转载 作者:行者123 更新时间:2023-12-01 09:30:32 25 4
gpt4 key购买 nike

我正在创建一个接受用户输入的程序。现在,如果用户输入无效命令,我想重新运行输入选项。像这里一样,仅首选整数输入,但如果用户输入文本,那么我想捕获异常并重新运行该方法。

我已经尝试过这个,但它让我陷入无限循环。实现此目标的最佳方法是什么。如果有人在这方面帮助我,那就太好了。

    boolean retry = true;

while(retry){

try{
//considering response from the user
System.out.print("\nEnter Your Command : ");
f_continue = processresponse(scanner.nextInt());
retry = false;
}catch(InputMismatchException e){

System.err.println("\nPlease Input a Valid Command from 1-5 or 0 for Exit");




}

}

最佳答案

如果你输入的不是整数,nextInt()会抛出异常,输入的内容仍然会在输入缓冲区中,所以下次你调用nextInt( ),您将读取相同的错误输入。您应该首先调用 hasNextInt() 来查看输入是否是整数;如果没有,只需调用 nextLine() 来跳过错误的输入(并编写一条消息告诉用户重试)。

或者您可以在 catch block 中调用 scanner.nextLine()

关于java - 如何在发生InputMismatchException后重试输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39459161/

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