while(n>0)
和while(n!=0)
的评估是否不同?基本上两者都是在相同的条件下退出。那么有没有应该使用其中一个的情况?或者通过更改循环条件,当循环被评估的次数相同时,性能效率会有所不同吗?
while(n>0)
和while(n!=0)
的评估是否不同?基本上两者都是在相同的条件下退出。那么有没有应该使用其中一个的情况?或者通过更改循环条件,当循环被评估的次数相同时,性能效率会有所不同吗?
一般情况下,差异将是中性的。
不管怎样,某些人可能会恶意考虑特殊方案,比如
while (n > 0)
{
...
n++;
}
vs.
while (n != 0)
{
...
n++;
}
while
展开为if
。if (n > 0) { ...; n++; while (true) { ...; n++; } }
- user1196549
n
的起始值 - 如果它以负值(或溢出值)开头,它们的行为会有很大不同。此外,我认为可能会有微小的性能影响,其中一个汇编指令不同,但这真的是无意义的微观优化。 - CompuChip