以拋出例外的思想完成判斷三邊是否能夠構成三角形及求三角形的面積
寫一個方法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://www.uj5u.com/houduan/229842.html
標籤:java
下一篇:Java 進階:集合框架2
