2016-08-07 6 views
1

사용자가 주어진 치수를 기반으로 삼각형의 면적을 계산하는 Java로 면적 계산기를 만들려고합니다. 사용자가 메뉴에서 삼각형 옵션을 선택하고 치수를 입력하도록 할 수는 있지만 방법을 사용하여 면적을 계산하려고하면 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); 
} 

답변

2

문제는 당신이 TheightTbase 변수에 값을 할당 할 Scanner 클래스의 equals 방법을 사용하지 않아야한다는 것입니다. 대입 연산자 대신 = 할당 연산자를 사용해야합니다. 그래서 https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)

Scanner 클래스의 equals 방법은 상속 코드가 이전에이 링크에서 볼 수있는 작동하지 않는 이유는

Tbase = selectionb; 

Theight = selectionh; 

tbaseChoice.equals(Tbase);theightChoice.equals(Theight); 교체 Java의 Object 클래스에서 가져온 것으로, 단순히 부울을 반환합니다. 전에 코드에서 Scanner 개체가 다른 개체와 같은지 확인했지만 반환 된 부울 값을 사용하여 아무것도 수행하지 않았습니다. 따라서 TbaseTheight 변수가 변경되지 않았습니다.

+0

와우 감사합니다. 이것은 이전에이 웹 사이트에서 사용 된 첫 번째 시간이었으며 귀하의 답변은시기 적절하고 도움이되었습니다. –

0

이 코드로 시도해 볼 수 있습니다. 아마도 이것은 당신을 도울 것입니다

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); 
    } 
}