2016-10-11 3 views
-2

Я хочу написать небольшую программу, но не знаю, почему моя петля не работает правильно.пока состояние не работает

while ((!ss.legal(myNumbers, colRand, rowRand, numRand)) || (triedNumbers.size() != 9)) { 
       System.out.println(triedNumbers.size()); 
//    if(triedNumbers.size()==9) break; 
       numRand = getRandomNumber(1,9); 
       if (!triedNumbers.contains(Integer.valueOf(numRand))) { 
        triedNumbers.add(Integer.valueOf(numRand)); 
       } 

      } 

вещь второе условие. Моя команда syso говорит мне, что размер уже равен 9, но цикл не заканчивается?

Если случайное число в порядке, юридический метод возвращает true. Итак, цикл должен закончиться. Если размер карты равен 9, он должен также закончить цикл, потому что я проверяю только цифры от 1 до 9.

+1

Возможно, вы должны использовать && вместо || –

+1

Нет никакого контекста для кода, который вы предоставили, поэтому очень сложно понять, что происходит. – px06

+0

Если размер равен 9, ваше другое условие должно возвращать true. – Kidiskidvogingogin

ответ

3

Замените || (или) с помощью && (и). Поскольку даже если размер уже равен 9, цикл будет продолжаться до тех пор, пока выполняется первое условие.