Java 而直到条件不´;行不通
我想写一个小程序,但不知道为什么我的循环不能正常工作Java 而直到条件不´;行不通,java,loops,while-loop,conditional-statements,infinite-loop,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
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的数字。将|
(或)替换为&&
(和)。因为即使大小已经是9,循环仍将继续,只要第一个条件为真也许您应该使用&&而不是| |您提供的代码没有上下文,所以很难看到发生了什么。如果第一个条件为真
,则第二个条件不会得到计算,因为您使用了| |
。即使它会被计算(通过使用|
),它也不会改变结果。或者使用false
对某个对象进行赋值将产生原始值。也许您应该这样做。@ProgrammerGermany123这基本上描述了&&
的行为。请遵循@px06的建议,熟悉基本逻辑。