-1

我要定义的方法是返回“BLACK”或“WHITE”字符串。我将在棋盘游戏主要方法中使用它。

第一次返回“黑色”。第二次返回“黑色”。第三次返回“WHITE”,第四次返回“WHITE”。

然后,它反复返回“BLACK”、“WHITE”、“BLACK”、“WHITE”等。

我该如何实施?

我打算定义一个 String 的 Node 类,创建两个具有 next 和 prev 字段的节点,并返回 this._next._getDatum(); 但我认为它不会起作用,而且它使我的代码过于复杂。

你对完成这个有什么建议吗?

4

3 回答 3

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 回答
1

如果您将其包含在一个单独的方法中,您可以保存完成的移动次数并使用该数量的模来确定它是偶数还是奇数。这将允许您在两个值之间转换。

例子:

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 回答
0

这听起来根本不像一种方法。只需创建一个循环并放置一个简单的 IF 检查来切换值。

于 2013-04-01T12:34:45.280 回答