以抛出异常的思想完成判断三边是否能够构成三角形及求三角形的面积
程序员文章站
2022-03-15 15:02:14
以抛出异常的思想完成判断三边是否能够构成三角形及求三角形的面积写一个方法void sanj(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不能则抛出异常NotSanjiaoException,显示异常信息a,b,c+"不能构成三角形,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数。调用此方法,并捕获异常。代码如下:public class NotSanjiaoException extends Exception { int x,y,z;...
以抛出异常的思想完成判断三边是否能够构成三角形及求三角形的面积
写一个方法void sanj(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不能则抛出异常NotSanjiaoException,显示异常信息a,b,c+"不能构成三角形,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数。调用此方法,并捕获异常。
代码如下:
public class NotSanjiaoException extends Exception {
int x,y,z;
String s;
public NotSanjiaoException(String string,int x,int y,int z) {
this.x=x;
this.y=y;
this.z=z;
s=string;
}
public String getMessage(){
return "输入的三边"+x+","+y+","+z+"不能构成三角形";
}
}
public class Sanj {
int x,y,z;
public Sanj(int x, int y, int z) {
super();
this.x = x;
this.y = y;
this.z = z;
}
public void getArea() throws NotSanjiaoException{
if(x>0&&y>0&&z>0){
if((x+y)>z&&(x+z)>y&&(y+z)>x){
double q = (x+y+z)/2;
double S = Math.sqrt((q-x)*(q-y)*(q-z));
System.out.println("三角形面积为:"+S);
} else
throw new NotSanjiaoException("不满足两边之和大于第三边",x,y,z);
} else
throw new NotSanjiaoException("x,y,z不能为负数",x,y,z);
}
public void getInfo() throws NotSanjiaoException{
if(x>0&&y>0&&z>0){
if((x+y)>z&&(x+z)>y&&(y+z)>x){
System.out.println("三角形的三边:"+x+","+y+","+z);}
else throw new NotSanjiaoException("不满足两边之和大于第三边",x,y,z);}
else throw new NotSanjiaoException("x,y,z不能为负数",x,y,z);
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入第一条边的长度");
int a=sc.nextInt();
System.out.println("输入第二条边的长度");
int b=sc.nextInt();
System.out.println("输入第三条边的长度");
int c=sc.nextInt();
Sanj s=new Sanj(a,b,c);
try{
s.getArea();
s.getInfo();
}catch(NotSanjiaoException e){
System.out.println("你输入的三条边"+a+","+b+","+c+"不能构成三角形");
}finally {
System.out.println("实现");
}
}
}
本文地址:https://blog.csdn.net/CSDN9825/article/details/110495904