当我运行此代码时,代码跳过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
。另外,请不要太技术化。我只是为了休闲而编码。
答案 0 :(得分:3)
你的循环进入圈子有两个原因:
nextInt
,但是如果失败则无法清除输入缓冲区,catch
中确实输入了清晰的输入,您的循环仍然会继续,因为没有loop
变量的赋值可以阻止循环。