我想要定义的方法是返回一个“BLACK”或“WHITE”字符串。 我将在棋盘游戏主要方法中使用它。
第一次返回“BLACK”。 第二次它返回“黑色”。 第三次它返回“WHITE”,并且 第四次它返回“WHITE”。
然后,它会反复返回“BLACK”,“WHITE”,“BLACK”,“WHITE”等。
我该如何实现?
我打算定义一个String类的Node,创建两个带有next和prev字段的节点,并返回this._next._getDatum();但我认为它不会起作用,而且它使我的代码太复杂了。
您对完成此事有什么建议吗?
答案 0 :(得分: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());
}
}
答案 1 :(得分:1)
IF 你要将它包含在一个单独的方法中,你可以保持完成的移动次数并使用该数量的模块来确定它是偶数还是奇数。这将允许您在两个值之间切换。
示例:
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++;
}
}
这不是放在一个方法中,因为它更像是解决这个问题的一般方法。您可以轻松地将其放入方法中并将其作为课程值返回。
答案 2 :(得分:0)
这听起来不像是一种方法。只需进行循环并进行简单的IF检查即可切换值。