-1

定義したいメソッドは、「BLACK」または「WHITE」の文字列を返すことです。これをボードゲームのメインメソッドで使用します。

初めて「BLACK」を返します。2回目は「BLACK」を返します。3 回目は「WHITE」を返し、4 回目は「WHITE」を返します。

その後、「BLACK」、「WHITE」、「BLACK」、「WHITE」・・・と繰り返し返します。

これをどのように実装できますか?

String の Node クラスを定義し、お互いを指す next フィールドと prev フィールドを持つ 2 つの Node を作成し、this._next._getDatum(); を返すつもりでした。しかし、うまくいくとは思いませんし、コードが複雑になりすぎます。

これを達成するための提案はありますか?

4

3 に答える 3

1

これを別のメソッドに含める場合は、実行された移動数を保持し、その量のモジュラを使用して、偶数か奇数かを判断できます。これにより、2 つの値を切り替えることができます。

例:

private static int amount = 0;
    public static void main(String[] args) {
        while(amount < 10){
            if(amount % 2 == 0){
                System.out.println("White");
            } else {
                System.out.println("Black");
            }

            amount++;
        }
    }

これは、これを解決するための一般的な方法として意図されているため、メソッドには配置されません。これをメソッドに簡単に入れ、もちろん値として返すことができます。

于 2013-04-01T12:39:17.823 に答える
1

毎回異なるものを返すために、メソッドは状態を保持する必要があります。Java では、状態はインスタンス変数またはクラス変数を使用して保持されます。"BLACK"設計についてよく知らないので、 と の間を切り替える短い実装を次に示します"WHITE"

public class FlipFlop {
    boolean isWhite;
    public String getCurrent() {
        isWhite = !isWhite;
        return isWhite ? "WHITE" : "BLACK";
    }
}

呼び出しは と の間でgetCurrent交互に行われます:"BLACK""WHITE"

static void main(String[] args) {
    FlipFlop ff = new FlipFlop();
    for (int i = 0; i != 10 ; i++) {
        System.out.println(ff.getCurrent());
    }
}

これはideoneのデモです。

于 2013-04-01T12:35:57.027 に答える
0

これはメソッドのようには聞こえません。ループを作成し、単純な IF チェックを配置して値を切り替えます。

于 2013-04-01T12:34:45.280 に答える