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

.Создание карты бинго в Java

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); должен быть while (goAgain); или while (goAgain == true); – emirc

ответ

4

Вы назначая true к goAgain в этой строке:

} while (goAgain = true); 

Оператор = является оператором присваивания. Таким образом, внутренний цикл do-while никогда не кончится.

Вы могли бы сравнить goAgain к true с оператором на == сравнения, но goAgain уже boolean, так что вы можете просто использовать само значение.

} while (goAgain); 
+0

Ничего себе ..... глупая ошибка ... знала это. Примут через 8 минут! :) – nick9999

+0

хороший, я тоже не заметил: D удаляю свой другой ответ. –

Смежные вопросы