几何面积计算器

Geometry Area Calculator

我正在尝试在 Java 中制作一个面积计算器,它将根据用户给定的尺寸计算三角形的面积。我可以让用户从菜单中选择 select 三角形选项并输入它们的尺寸,但是当我尝试使用一种方法来计算面积时,它只会打印出 0.0

{
    Scanner tbaseChoice = new Scanner(System.in);
    System.out.println("What is the base?");
    double selectionb = tbaseChoice.nextDouble();
    tbaseChoice.equals(Tbase);

    Scanner theightChoice = new Scanner(System.in);
    System.out.println("What is the height?");
    double selectionh = theightChoice.nextDouble();
    theightChoice.equals(Theight);

    System.out.println("BASE:" + selectionb + " " + "HEIGHT:" + selectionh);

    //tbaseChoice.equals(Tbase);
    //theightChoice.equals(Theight);

}

public static void calculateArea() {
   double triangleArea = Theight * Tbase;
   System.out.print("Area=" + triangleArea);
}

问题是您不应该使用 Scannerclass 的 equals 方法来为 TheightTbase 赋值变量。您应该改为使用 = 赋值运算符来执行此操作。所以用

替换 theightChoice.equals(Theight);
Theight = selectionh;

tbaseChoice.equals(Tbase);以及

Tbase = selectionb;

为什么你的代码之前不能工作可以从这里看出link,https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)

Scannerclass中的equals方法继承自Java的Objectclass,只是returns 一个布尔值。在您之前的代码中,您正在检查 Scanner 对象是否等于另一个对象,但是没有对返回的布尔值进行任何操作。因此,您的 TbaseTheight 变量没有改变。

您可以尝试使用这些代码。也许这会对你有所帮助

public class AreaCalculator {
    static double base=0.0;
    static double height=0.0;

    public static void main(String args[]){
        //Scanner object for input
        Scanner scanner=new Scanner(System.in);
        System.out.println("What is the base?");
        base=scanner.nextDouble();
        System.out.println("What is the height?");
        height=scanner.nextDouble();
        System.out.println("BASE:" + base + " " + "HEIGHT:" + height);
        System.out.println("Area is: "+triangleArea());
    }

    public static double triangleArea(){
        return (.5*base*height);
    }
}