這個程序是一個簡單的紙牌遊戲,我掛在一個複雜的循環。這張「火」牌需要檢查它的2個鄰居遊戲板插槽,看看它是否被另一張卡佔用,如果是,它是否是一張可以影響的卡。有了這個循環,它需要一次運行成功,或兩次失敗。我想我已經認識到了下面的代碼,但是當它運行循環失敗時,程序崩潰而沒有錯誤。讓我知道你的想法,謝謝。複雜的循環幫助。 Java
此代碼只是方法,主要不包括在內。
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;
是故意的按位「|」嗎? – CBIII
可能的重複[如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – jlordo
是的,我必須使用它們錯誤如果你問。我的印象是,這意味着只有其中一個表達式需要評估爲true才能成功。 – Sevren