2016-08-07 4 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メソッドを使用してはならないことです。代わりに代入演算子=を使用して代わりに代入演算子を使用する必要があります。このリンクから見ることができる前に、あなたのコードがScannerクラスのequalsメソッドが継承され、https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)

を働いていなかったのはなぜそう

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