-1

図形の名前を入力するプログラムを作成しようとしています。これにより、面の数がわかります。私はそれを機能させることができないようです。誰でもこれを行う方法を説明できますか?

import java.util.Scanner;

public class Shapes {

  public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);
    String shape;

    System.out.print("Enter shape: ");
    shape = reader.next();

    if (shape == "hexagon") {
        System.out.println("A hexagon has 6 sides.");
    }

    if (shape == "decagon"); {
        System.out.println("A decagon has 10 sides.");
    }


  }

}
4

3 に答える 3

0

Java では、文字列で .equals() を使用します。

例えば:

if(shape.equals("hexagon"))

shape== 演算子は String オブジェクトが「六角形」とまったく同じかどうかを尋ねているため (そうではない - 六角形は定数でshapeあり、オブジェクトです)。

于 2013-09-05T16:53:59.560 に答える
0

オブジェクトはequalsJava で比較されます。

if (shape.equals("hexagon")) {
    System.out.println("A hexagon has 6 sides.");
}

と比較できるのは、プリミティブ型 (int、long、double など) の値のみ==です。オブジェクトを比較する場合は、値ではなくオブジェクト ID==を比較します。

于 2013-09-05T16:54:10.383 に答える
0

shape.equals("triangle")次の場合に使用

演算子 == は、2 つのオブジェクト参照変数がオブジェクトのまったく同じインスタンスを参照しているかどうかをテストします。

メソッド .equals() は、比較対象の 2 つのオブジェクトが等しいかどうかをテストしますが、同じオブジェクトのまったく同じインスタンスである必要はありません。

プリミティブ型で == を使用できます。文字列の場合は equals() を使用します

于 2013-09-05T16:54:53.717 に答える