【发布时间】:2018-11-08 02:37:41
【问题描述】:
每当我尝试运行我的代码时,它都会无限打印"Please enter number of hours",直到给出stackoverflow。
public static void hoursToDaysAndHours() throws InterruptedException {
try {
System.out.println("Please enter number of hours");
Calc.fNum = Calc.input.nextDouble();
}
catch (Exception e) {
hoursToDaysAndHours()
}
Calc.sNum = Calc.fNum / 24;
Calc.awnser = Calc.fNum % 24;
System.out.print((int) Calc.fNum + " hours = " + (int) Calc.sNum + " days and " + (int) Calc.awnser + " hours");
Thread.sleep(5000);
Calc.main(null);
}
Calc 是另一个具有 main 并声明变量的类...这是在 hTDAH 类中...
编辑:正如 cmets 中提到的@Deadpool,main 在部分结束后重复一次......
3
Please enter a Celious Number
f
Please enter a Celious Number
f
Please enter a Celious Number
f
Please enter a Celious Number
fd
Please enter a Celious Number
d
Please enter a Celious Number
f
Please enter a Celious Number
dddddddddd
Please enter a Celious Number
/
Please enter a Celious Number
87654
87654.0Celcius is 157809.2 in Fahrenheit
Please enter a number between 1-4
1 = AreaOfTriangle
----------------------------------
2 = HoursToDaysAndHours Calculator
----------------------------------
3 = CelciusToFahrenheit Calculator
----------------------------------
4 = BirthdayGame
----------------------------------
Please enter a number between 1-4
1 = AreaOfTriangle
----------------------------------
2 = HoursToDaysAndHours Calculator
----------------------------------
3 = CelciusToFahrenheit Calculator
----------------------------------
4 = BirthdayGame
----------------------------------
【问题讨论】:
-
将
Calc.input.nextLine()添加到您的catch块...给我下一个双倍。没有双倍,所以我会抛出一个异常并保持这个令牌待处理。 -
使用
e.printStackTrace();打印catch-block中的异常,你就知道哪里错了 -
Calc.main(null);这是递归调用
标签: java function exception try-catch