因此,在此代码中,main方法不断重复自身。我知道原因,但我不知道如何解决它。
具体来说,正在发生的事情是在给出答案之后有一个Thread.sleep
(我正在制作一个计算器,所以答案可能就像“总和:4”)并且用户可以Thread.sleep
内的垃圾邮件。该程序认为他们仍在尝试输入一种类型的数学问题(因为你输入加法,减法或乘法),然后它重复两次主要问题。
这是添加方法:
private static void Addition() {
Scanner inputa = new Scanner(System.in);
System.out.println("How many numbers would you like to add?");
int outputa = inputa.nextInt();
int sum = 0;
for(int countera = 0; countera < outputa; countera++) {
try {
System.out.println("Number " + (countera + 1) + ":");
sum += inputa.nextInt();
}
catch(InputMismatchException ex) {
System.out.println("Not a valid integer.");
try {
Thread.sleep(2000);
}
catch (InterruptedException e) {
System.out.println("Error occured.");
}
String[] args = {};
MiriMain.main(args);
}
}
System.out.println("Sum: " + sum);
try {
Thread.sleep(2500);
}
catch(InterruptedException Ex) {
Thread.currentThread().interrupt();
}
String[] args = {};
MiriMain.main(args);//MiriMain is the main method
}
因此,在睡眠状态下,用户仍然可以输入。当Thread.sleep
仍处于激活状态时,如何阻止此人输入内容?任何答案都有帮助。
感谢。
`