【发布时间】:2018-02-21 22:53:00
【问题描述】:
int lim1, lim2, nr1, nr2;
lim1=1; lim2=1;
nr1=6; nr2=7;
while (nr1 != lim1 && nr2 != lim2)
{
nr1--; nr2--;
cout << nr1 << ' ' << nr2 << endl;
}
为什么当 nr1 变为 1 时 while 会停止,而 nr2 不会。 && 不应该意味着必须满足两个条件吗? nr2 在循环结束时不是 1 那么为什么不变成无限循环呢?
为什么这个循环会起作用?正如预期的那样,这是一个无限循环。
while (!(nr1 == lim1 && nr2 == lim2))
{
nr1--; nr2--;
cout << nr1 << ' ' << nr2 << endl;
}
这两个条件不是检查同一件事吗?
【问题讨论】:
-
昨天我花了一整天的时间试图弄明白,但我就是想不通。
-
De Morgan's Law的可能重复
-
@Someprogrammerdude 是的,它不应该停止,因为不是两个数字都是 1。只有一个是。它应该无限地继续
标签: c++ while-loop conditional-statements