gpt4 book ai didi

java - while循环中的多个条件给出不同的结果

转载 作者:搜寻专家 更新时间:2023-10-31 00:28:02 24 4
gpt4 key购买 nike

我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com