Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 而直到条件不´;行不通_Java_Loops_While Loop_Conditional Statements_Infinite Loop - Fatal编程技术网

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的建议,熟悉基本逻辑。