java 计算 三角形的面积

public class Anser2 {
    float[] arrays = new float[4];
    //主函数入口,如果输入有误则抛出异常
    public static void main(String[] args){
        System.out.println("面积是:"+new Anser2().getTheArea());
    }
    private double inputStr() {
        Scanner scan = new Scanner(System.in);
        double result = 0;
        System.out.println("请输入三个条边长,来建立一个三角形");
        for(int i = 1; i < 4; ){
            System.out.println("请输入第"+i+ "边长为:");
            int intres = 0;
            if (scan.hasNext()) {
                String inputstr = (String) scan.next();
                try {
                    intres = Integer.parseInt(inputstr);
                    if(intres <= 0) 
                        System.out.println("您输入了一个小于或等与零的数,请重新输入一个数字");
                    else
                        arrays[i] = intres;
                        i++;
                }catch (Exception e) {
                    System.out.println("您输入了一个错误字符,请重新输入一个数字");
                    e.printStackTrace();
                }
            }
        }
        return result;
    }
    public double getTheArea() {
        inputStr();
        double result = 0;
        
        boolean error1 = (arrays[1] + arrays[2]) > arrays[3];
        boolean error2 = (arrays[2] + arrays[3]) > arrays[1];
        boolean error3 = (arrays[3] + arrays[1]) > arrays[2];
        while(!(error1 && error2 && error3)) {
            System.out.println("当前三条边不可能组成三角型请重新输入");
            inputStr();
        }
        float sq = (arrays[1] + arrays[2] + arrays[3]) /2;
        
        result = Math.sqrt(sq * (sq - arrays[1]) * (sq - arrays[2]) * (sq - arrays[3]));
        return result;
    }
}

 

posted @ 2021-09-26 17:48  CPPLC  阅读(1459)  评论(0编辑  收藏  举报