这个程序是一个简单的纸牌游戏,我被一个复杂的循环所困扰。这张“火”卡需要检查它的 2 个相邻游戏板插槽,看看它是否被另一张卡占用,如果是,则它是否是它可以影响的卡。对于这个循环,它要么需要成功运行一次,要么需要运行两次不成功。我以为我已经用下面的代码解决了这个问题,但是当它运行循环失败时,程序崩溃了,没有错误。让我知道你的想法,谢谢。
这段代码只是方法,不包括main。
public static void fireAction(String slotSelection)
{
switch (slotSelection)
{
case "A1":
{
boolean x = true;
boolean y = true;
boolean end = false;
while ((y == true && x == true) || (end == false))
{
int burn = roll.nextInt(2);
switch (burn)
{
case (0):
if ((newBoard.getSlotA2() == "fire") | (newBoard.getSlotA2() == "wind")){
newBoard.setSlotA2("BURNED");
end = true;}
else
x = false;
break;
case (1):
if ((newBoard.getSlotB1() == "fire") | (newBoard.getSlotB1() == "wind")){
newBoard.setSlotB1("BURNED");
end = true;}
else
y = false;
break;
}//end switch
}//end while
}//end case A1
break;
最佳答案
尝试使用&&而不是|| :
while ((y == true && x == true) && (end == false))
也许你应该使用 ||而不是 |在以下代码中:
if ((newBoard.getSlotA2() == "fire") | (newBoard.getSlotA2() == "wind"))
关于java - 复杂循环帮助。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18028459/