gpt4 book ai didi

java - 为什么我的 try/catch block 一直在循环?

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

当我运行它时,代码会跳过 input.nextInt(); 并绕圈子:

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Link user to programs (ToC)
int loop = 1;

do {
try {
System.out.println("Please choose a number: ");
System.out.println("0. Exit");
System.out.println("1. Calculator");
int numChoice = input.nextInt();
if (numChoice == 0) {
System.exit(0);
} else if (numChoice == 1) {
System.out.println("Going to Calculator...");
new Calculator();
} else {
System.out.println("Not a valid choice.");
}
}
catch (Exception e) {
System.out.println("Please input a number!");
}
} while (loop == 1);
}

无论出于何种原因,它似乎都在跳过 int numChoice。另外,请不要太技术化。我只是为了闲暇而编写代码。

最佳答案

你的循环绕圈子有两个原因:

  • 您尝试使用 nextInt,但您没有在失败时清除输入缓冲区,并且
  • 即使您在 catch 中清除了输入,您的循环仍会继续,因为没有对应该停止循环的 loop 变量赋值.

关于java - 为什么我的 try/catch block 一直在循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26171920/

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