我想写一个小程序,但不知道为什么我的循环不能正常工作。
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的数字。
答案 0 :(得分:3)
将||
(或)替换为&&
(和)。因为即使大小已经是9,只要第一个条件为真,循环仍将继续