首页 > 解决方案 > 有什么方法可以简化我的 java 代码?

问题描述

我是这里的初学者。我试图确定用户是否给出了三角形的 3 个边,程序将检查它是什么类型的三角形。有什么方法可以在不使用高级代码的情况下缩短此代码?

这是我的代码。

double a = 13
double b = 8
double c = 7
double leg1, leg2, leg3;
        if(a > b && a > c){
            leg1 = Math.pow(a,2);
            leg2 = Math.pow(b,2);
            leg3 = Math.pow(c,2);
                if(leg1 == leg2 + leg3) {
                    System.out.println("Right.");
                }else if (leg1 > leg2 + leg3){
                    System.out.println("Obtuse.");
                }else if (leg1 < leg2 + leg3){
                    System.out.println("Acute.");
                }
        }else if(b > a && b > c){
            leg1 = Math.pow(b,2);
            leg2 = Math.pow(a,2);
            leg3 = Math.pow(c,2);
            if(leg1 == leg2 + leg3) {
                System.out.println("Right.");
            }else if (leg1 > leg2 + leg3){
                System.out.println("Obtuse.");
            }else if (leg1 < leg2 + leg3){
                System.out.println("Acute.");
            }
        }else if (c > a && c > b){
            leg1 = Math.pow(c,2);
            leg2 = Math.pow(a,2);
            leg3 = Math.pow(b,2);
            if(leg1 == leg2 + leg3) {
                System.out.println("Right.");
            }else if (leg1 > leg2 + leg3){
                System.out.println("Obtuse.");
            }else if (leg1 < leg2 + leg3){
                System.out.println("Acute.");
            }
        }else{
            System.out.println("You have entered an invalid triangle.");
        }

标签: java

解决方案


我认为这有点离题,但这次没关系。

本质上,您正在编写此代码段 3 次,因此必须将其封装在一个函数中

if(leg1 == leg2 + leg3) {
                System.out.println("Right.");
            }else if (leg1 > leg2 + leg3){
                System.out.println("Obtuse.");
            }else if (leg1 < leg2 + leg3){
                System.out.println("Acute.");
            }

可以是类似的东西

public void defineTriangle(double leg1, double leg2, double leg3){
    if(leg1 == leg2 + leg3) {
                    System.out.println("Right.");
                }else if (leg1 > leg2 + leg3){
                    System.out.println("Obtuse.");
                }else if (leg1 < leg2 + leg3){
                    System.out.println("Acute.");
                }
}

因此您的代码可以调用此函数的 3 次(或者,更好的是,调用此方法的 3 次)。

然后,您基本上生成 3 个数字作为输入,将它们从上到下排序,然后调用定义三角形的方法。

基本上你需要一个数组......

double a = 13;
double b = 8;
double c = 7;
double[] sides = {a,b,c};
Arrays.sort(sides);
defineTriangle(sides[0], sides[1], sides[2]);

但是,这种方法并不真正类似于 Java,因为它使用原语而不是对象。


推荐阅读