我在 while 循环中有两个条件:
count = 0;
while (j >= 0 && arr[j] > key)
{
count++;
j = j-1;
}
当我打破以下两个条件时,计数会发生变化:
while (j >= 0)
{
if(arr[j] > key)
{
count++;
}
j = j-1;
}
第一个程序的输出:456
第二个程序的输出:904。
我认为这两个代码块是相同的。为什么这两个程序的计数不同?
最佳答案
这两个版本在逻辑上并不等同。在第一个版本中,仅当两个条件都为真时,j
才会递减。在第二个版本中,仅当第一个条件为真时,j
才会递减。当第二个版本中键比较失败时,j
仍然会递减。
由于 j
用作计算循环条件的一部分,因此这直接影响循环执行的次数。
关于java - while 循环中的多个条件给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46870471/