【发布时间】:2017-02-08 06:29:55
【问题描述】:
所以我编写了这个程序,但由于某种原因,我的 else 语句不起作用。 例如,如果我输入“e”,我的程序将简单地崩溃......当它实际上应该返回“无效输入”时 有人可以帮帮我吗?
================================================ ============================
import java.util.Scanner;
public class AbsValue2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number:");
String num = input.nextLine();
Double num2 = new Double(Double.parseDouble(num));
Double abs_val = new Double(Math.sqrt(num2 * num2));
if (num.matches("[+-]?[\\d]+[.]*"))
System.out.println("The absolute value of " + num + " is |" + abs_val + "|");
else if (num.matches("[+-]?[\\d]*.[\\d]+"))
System.out.println("The absolute value of " + num + " is |" + abs_val + "|");
else
System.out.println("Invalid input");
}
}
【问题讨论】:
-
您正在尝试解析它,然后再检查它是否有效。
-
简单的解决方法是在 try 和 catch 中进行包装,并在您的 catch 输出中输入无效输入!
标签: java if-statement crash