Java 2.从控制台输入三个数值,判断这三个数值是否能构成一个三角形。程序要实现以下功能: 检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生InputMismatchException异常(需要导入java.util.InputMismatchException这个类) 检查输入的命令行参数中是否有负数或0,如果有负数或0,则程序可能产生NumberValueException异常(NumberValueExcception为自定义异常) 检查输入的三个数值是否能构成一个三角形,如果不能构成一个三角形,则程序可能产生TriangleException异常(TriangleException为自定义异常) 没出现异常则显示这三个数字可以构成一个三角形 提示:三角形任意两边之和必须大于第三边
时间: 2024-03-18 12:41:14 浏览: 66
以下是实现该功能的Java代码:
```java
import java.util.InputMismatchException;
class NumberValueException extends Exception {
public NumberValueException(String message) {
super(message);
}
}
class TriangleException extends Exception {
public TriangleException(String message) {
super(message);
}
}
public class Triangle {
public static void main(String[] args) {
try {
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[1]);
double c = Double.parseDouble(args[2]);
if (a <= 0 || b <= 0 || c <= 0) {
throw new NumberValueException("输入的数值中存在负数或0");
}
if (a + b <= c || a + c <= b || b + c <= a) {
throw new TriangleException("无法构成三角形");
}
System.out.println("这三个数字可以构成一个三角形");
} catch (InputMismatchException e) {
System.out.println("输入的数值格式错误");
} catch (NumberFormatException e) {
System.out.println("输入的数值格式错误");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("缺少命令行参数");
} catch (NumberValueException e) {
System.out.println(e.getMessage());
} catch (TriangleException e) {
System.out.println(e.getMessage());
}
}
}
```
其中,我们定义了两个自定义异常类:NumberValueException和TriangleException。当输入的数值中存在负数或0时,抛出NumberValueException异常;当无法构成三角形时,抛出TriangleException异常。在程序中,我们使用try-catch语句捕获可能抛出的各种异常,并根据不同的异常类型输出相应的提示信息。如果没有出现异常,则输出“这三个数字可以构成一个三角形”的信息。
阅读全文