而直到情况不起作用

时间:2016-10-11 13:37:01

标签: java loops while-loop conditional-statements infinite-loop

我想写一个小程序,但不知道为什么我的循环不能正常工作。

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-command告诉我大小已经是9但循环没有结束?

如果随机数很好,则合法方法返回true。所以循环应该结束。如果地图的大小为9,它也应该结束循环,因为我只检查从1到9的数字。

1 个答案:

答案 0 :(得分:3)

||(或)替换为&&(和)。因为即使大小已经是9,只要第一个条件为真,循环仍将继续