Search code examples
javamathmethodscalculatorarea

Geometry Area Calculator


I am trying to make an area calculator in Java that will calculate the area of a triangle based on given dimensions by the user. I can get the user to select the triangle option from a menu and enter their dimensions but when I try to use a method to calculate the area, it only prints out 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);
}

Solution

  • The problem is that you shouldn't be using the equals method of the Scannerclass to assign values to the Theight and Tbase variables. You should instead be using the = assignment operator to do so instead. So replace theightChoice.equals(Theight); with

    Theight = selectionh;
    

    and tbaseChoice.equals(Tbase); with

    Tbase = selectionb;
    

    Why your code wasn't working before can be seen from this link, https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)

    The equals method in the Scanner class is inherited from Java's Object class, which simply just returns a boolean. In your code before, you were checking to see if a Scanner object was equal to another object, but nothing was being done with the boolean value returned. Therefore, your Tbase and Theight variables weren't changing.