public class test2 { public static void triangle(int a,int b,int c) throws IllegalArgumentException{ if(a+b<=c||a+c<=b||b+c<=a){ throw new IllegalArgumentException(a+","+b+","+c+"不能构成一个三角形"); }else{ System.out.println("三角形的三个边长为:"+a+","+b+","+c); } } public static void main(String[] args){ try{ int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = Integer.parseInt(args[2]); triangle(a,b,c); }catch(NumberFormatException e){ System.out.println("输入的参数必须是整数"); }catch(IllegalArgumentException e){ System.out.println(e.getMessage()); } } }这个代码的运行结果
时间: 2024-03-30 15:38:32 浏览: 71
这个代码需要从命令行输入三个整数作为三角形的三条边,如果输入的三个数字不能构成一个三角形,会抛出 IllegalArgumentException 异常,程序会输出异常信息;如果输入的三个数字能构成一个三角形,程序会输出三角形的三条边长。如果输入的参数不是整数,会抛出 NumberFormatException 异常,程序会输出异常信息。
所以,如果输入的三个数字能构成一个三角形,程序会输出类似于“三角形的三个边长为:a,b,c”的信息;如果输入的三个数字不能构成一个三角形,程序会输出类似于“a,b,c不能构成一个三角形”的信息;如果输入的参数不是整数,程序会输出“输入的参数必须是整数”的信息。
相关问题
利用等价类划分的方法,给出以下程序足够的测试用例:import java.util.Scanner; public class Triangle { public static void main(String[] args) { Scanner input = new Scanner(System.in); int a = input.nextInt(); int b = input.nextInt(); int c = input.nextInt(); if (a < 0 || a > 200 || b < 0 || b > 300 || c < 0 || c > 200) { System.out.println("数据输入有错,不满足0<a、b、c≤200"); } else if (a + b <= c || b + c <= a || a + c <= b) { System.out.println("不构成三角形"); } else if (a == b && b == c) { System.out.println("等边三角形"); } else if (a == b || b == c || c == a) { System.out.println("等腰三角形"); } else { System.out.println("普通三角形"); } } }
这个程序的输入是三个整数a,b和c,用来表示三角形的三条边长。根据等价类划分的方法,我们可以将输入的a,b和c分成以下几类:
1. a、b、c均在[0,200]范围内,且能构成三角形。
2. a、b、c均在[0,200]范围内,但无法构成三角形。
3. a、b、c有至少一个小于0或大于200的值。
对于第一类,我们可以选择以下测试用例:
- a=1,b=1,c=1,期望输出“等边三角形”。
- a=3,b=4,c=5,期望输出“普通三角形”。
- a=200,b=200,c=1,期望输出“等腰三角形”。
对于第二类,我们可以选择以下测试用例:
- a=1,b=2,c=3,期望输出“不构成三角形”。
- a=100,b=100,c=201,期望输出“不构成三角形”。
- a=200,b=1,c=200,期望输出“不构成三角形”。
对于第三类,我们可以选择以下测试用例:
- a=-1,b=2,c=3,期望输出“数据输入有错,不满足0<a、b、c≤200”。
- a=100,b=300,c=200,期望输出“数据输入有错,不满足0<a、b、c≤200”。
- a=201,b=200,c=200,期望输出“数据输入有错,不满足0<a、b、c≤200”。
定义一个方法,求三角形面积,即getArea Cint a,int b,int c。三用形的三条边由数组元素接收,来自键盘的输人。当数据类型不匹配时,抛出异常;当效据个效不满足要求时,抛出昇常;当三条边的值不能构成三角形时,抛出异常。 步骤: (1)定义方法 void triangle (int a, int b, int c) ; (2)不符合条件,则抛出异常,如 (if a+b<=C(或 ac<=b,b+c<=a) then throw new IllegalArgumentException (),); (3)在main 方法中调用triangle方法,用try...catch...finally语句捕获昇常。
好的,以下是你所需的代码:
```java
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入三角形的三条边长:");
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
getArea(a, b, c);
} catch (IllegalArgumentException e) {
System.out.println("输入的三条边不能构成三角形!");
} catch (Exception e) {
System.out.println("输入的数据类型不匹配!");
} finally {
scanner.close();
}
}
public static void getArea(int a, int b, int c) {
if (a + b <= c || a + c <= b || b + c <= a) {
throw new IllegalArgumentException();
}
double p = (a + b + c) / 2.0;
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.println("三角形的面积为:" + area);
}
}
```
在这段代码中,我们定义了一个 `getArea` 方法来计算三角形的面积,同时在方法内部进行了一系列判断,抛出异常或计算面积。在 `main` 方法中,我们接收三个整数作为三角形的三条边长,并调用 `getArea` 方法来计算面积。同时,我们使用了 `try...catch...finally` 语句来捕获可能出现的异常,并在最终关闭了 `Scanner` 对象,以确保程序的健壮性和资源的释放。
阅读全文