我記得在Python中有這個確切的問題。這個Java代碼是我的Python代碼的一個副本,用於計算三角形的面積。如果輸入一個非數字值,我會發現一個異常,但最終的結果會被打亂。Java中的異常後重新提示
private static float baseLength() {
float baseLength = 0;
Scanner user_input = new Scanner(System.in);
try {
while (baseLength <= 0) {
System.out.print("Enter the base length of the triangle: ");
baseLength = user_input.nextFloat();
if (baseLength <=0) {
System.out.println("Error. Plase enter a number higher than 0.");
}
}
} catch (InputMismatchException badChar) {
System.err.println("You have entered a bad value. Please try again");
baseLength();
}
return baseLength;
它將從錯誤的數字中恢復,但不是從不是數字的值中恢復。我仍然無法弄清楚確切的問題是什麼。
你可能想'返回baseLength()'而不是隻調用它。 – SomeJavaGuy
這裏有什麼問題?我測試了它。它似乎工作正常。這裏的預期行爲是什麼? –
當用戶輸入數字0或以下時,會再次提示他們。但是,例如,如果用戶輸入'狗',它仍然會提示他們,但返回值不是您認爲的數字。 – user2226042