用Java代码写出输入三角形的三条边,求三角形面积。当三条边无法构成三角形时进行异常处理
时间: 2024-05-03 18:21:06 浏览: 154
可以使用以下的Java代码来实现输入三角形的三条边,求三角形面积:
```java
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入三角形的三条边:");
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
if (a + b <= c || a + c <= b || b + c <= a) {
System.out.println("输入的三条边无法构成三角形!");
} else {
double p = (a + b + c) / 2;
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.println("三角形的面积为:" + area);
}
}
}
```
当输入的三条边无法构成三角形时,我们可以使用一个条件判断语句来进行异常处理,并输出相应的提示信息。
相关问题
写两个类,三角形类(Triangle)、测试类(TriangleTest)。 (1)三角形类(Triangle) 一个成员方法:用于判断三角形三条边是否能构成一个三角形void sanjiao(int a,int b,int c)。如果不能构成三角形,则抛出异常IllegalArgumentException并显示异常信息“a,b,c不能构成三角形”,如果可以构成三角形则显示三角形三个边的边长和三角形的周长、面积。 (2)测试类(TriangleTest) 实例化对象,通过键盘接收三角形的三条边,调用sanjiao方法并捕获处理异常。
好的,我知道了。以下是根据您要求编写的代码:
三角形类(Triangle):
```
public class Triangle {
public void sanjiao(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 {
double p = (a + b + c) / 2;
double area = Math.sqrt(p*(p-a)*(p-b)*(p-c));
System.out.println("三角形三边分别为:" + a + ", " + b + ", " + c);
System.out.println("三角形的周长为:" + (a + b + c));
System.out.println("三角形的面积为:" + area);
}
}
}
```
测试类(TriangleTest):
```
import java.util.Scanner;
public class TriangleTest {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("输入三角形三边的长度:");
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
Triangle triangle = new Triangle();
try {
triangle.sanjiao(a, b, c);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
```
以上代码可以实现您要求的功能,如果输入的三个数无法构成三角形,程序会抛出IllegalArgumentException并显示异常信息,如果可以构成三角形,则会输出三角形的三边长度、周长和面积。前提是输入的三个数都是正整数或者正小数。
用JAVA写出满足以下要求的程序输入三角形的三条边a、b、c,判断并输出能否构成三角形(任意两条边的和大于第三条边),如果能构成三角形,输出是什么类型的三角形(等边、等腰、直角)。
下面是一个Java程序,它接受用户输入的三条边长,并判断是否能构成三角形以及其类型:
```java
import java.util.Scanner;
public class TriangleClassifier {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入三角形的第一条边长a: ");
double a = scanner.nextDouble();
System.out.print("请输入三角形的第二条边长b: ");
double b = scanner.nextDouble();
System.out.print("请输入三角形的第三条边长c: ");
double c = scanner.nextDouble();
if (isValidTriangle(a, b, c)) {
String triangleType = classifyTriangle(a, b, c);
System.out.println("这是一条" + triangleType + "三角形.");
} else {
System.out.println("这三个长度无法构成三角形.");
}
scanner.close();
}
// 判断三条边是否能构成三角形
private static boolean isValidTriangle(double a, double b, double c) {
return a + b > c && a + c > b && b + c > a;
}
// 根据边长分类三角形类型
private static String classifyTriangle(double a, double b, double c) {
if (a == b && b == c) {
return "等边";
} else if (a == b || b == c || a == c) {
return "等腰";
} else if (Math.pow(a, 2) + Math.pow(b, 2) == Math.pow(c, 2) ||
Math.pow(b, 2) + Math.pow(c, 2) == Math.pow(a, 2) ||
Math.pow(a, 2) + Math.pow(c, 2) == Math.pow(b, 2)) {
return "直角";
} else {
return "普通";
}
}
}
```
在这个程序中,我们首先检查边长是否满足构成三角形的条件,然后根据边长相等的情况分类三角形类型。
阅读全文