0

これは私のifステートメントです...ボタンは次のように表示されます。

ここにコードを入力してください
これは私のifステートメントです

        if((buttons[3].getName()=="x" && buttons[6].getName()=="x" &&
        buttons[9].getText()=="x")||(buttons[2].getName()=="x" &&
        buttons[5].getName()=="x" && buttons[8].getName()=="x")||
        ((buttons[1].getName()=="x") && (buttons[4].getName()=="x") &&
        (buttons[7].getName()=="x"))){
            JOptionPane.showMessageDialog(null,"X Wins");
        }

では、1番目、4番目、7番目のボタン(左端の3つのボタン)を選択すると、なぜ「XWins」と表示されないのでしょうか。
補足として、はい、ボタンの名前は「x」にする必要があります

4

4 に答える 4

3
buttons[3].getName()=="x" 

文字列の比較では、equals()代わりにを使用する必要があります==

そのはずbuttons[3].getName().equals("x")

于 2012-11-08T04:51:39.363 に答える
2

--Java Objectsでは、を使用して比較され"equals"ます。 "=="プリミティブ値を比較するため、および2つ以上のオブジェクト参照変数が同じオブジェクトを指しているheapかどうかを確認するために使用されます。

-したがって、JavaでString オブジェクト.equals()であることは、を使用して、またを使用して比較する必要があります.equalsIgnoreCase()

例:

buttons[1].getName().equals("x");

于 2012-11-08T04:58:44.007 に答える
1

文字列間の比較では、equals()を使用します。

button[1].getName().equals("x");

また、左側の3が1、4、7であり、0、3、6ではないことを確認しますか?

于 2012-11-08T04:54:09.210 に答える
1

if条件を再確認してください。長過ぎます。どこでもANDおよびORと混合。予期しない結果が生じる可能性があります。

また、equals()またはequalsIgnoreCase()を使用します

于 2012-11-08T06:22:33.907 に答える