2015-03-02 33 views
0
import java.util.ArrayList; 

用Java創建Bingo卡片

int randomNum, high = 0, low = -14, row = -1; 
Boolean goAgain; 

ArrayList<Integer> numberList = new ArrayList<>(); 

do { 

     high = high + 15; 
     low = low + 15; 
     row = row + 1; 
     goAgain = true; 

     for (int colum = 0; colum < 5; colum++) { 

      do { 

       randomNum = (int) (Math.random() * (high - low) + low); 

       containsNumber = numberList.contains(randomNum); 

       if (containsNumber == false) { 

        numberList.add(randomNum); 

        bingoBoard[row][colum] = randomNum; 

        goAgain = false; 

       } 

      } while (goAgain = true); 
     } 
    } while (row != 4); 

我正在嘗試創建賓果卡。當我運行上面的代碼時,我陷入了最內在的do-while語句的無限循環中。我知道它可能是一個簡單的辦法,但我認真看不到的問題...

+0

while(goAgain = true);應該是(goAgain);或while(goAgain == true); – emirc 2015-03-02 21:14:26

回答

4

你在這一行分配truegoAgain

} while (goAgain = true); 

運營商=是賦值運算符。所以內部的do-while循環將永遠不會結束。

您可以比較goAgaintrue==比較符,但是goAgain已經是boolean,所以你可以只用本身的價值。

} while (goAgain); 
+0

哇.....愚蠢的錯誤...知道了。將在8分鐘內接受! :) – nick9999 2015-03-02 21:12:05

+0

不錯,我也沒有注意到:D刪除我的其他答案。 – 2015-03-02 21:12:51