是什么让这成为无限循环?不应该n
达到5并终止循环吗?
int main()
{
int n = 1;
while (n <= 5)
cout << n ;
n++;
}
答案 0 :(得分:9)
while
条件后没有花括号。
这就是为什么只有cout << n;
一遍又一遍地执行 的原因。当您编写while (something) doThis(); doThat();
或if (something) doThis(); doThat();
时,只有doThis()
执行something
,而int n=1;
while (n<=5) {
cout << n;
++n;
}
为真时。
如果是这样写的
auto-generated
然后它不会是无限的
答案 1 :(得分:3)
因为您的代码等同于
int main()
{
int n = 1;
while (n <= 5)
{
cout << n ;
}
n++;
}
n++
将不会被执行。
答案 2 :(得分:1)
在您的代码中,n
的值不会增加(除非控件不在循环中)。这是因为n++;
不是循环的一部分。这就是它成为无限循环的原因。
当有多个语句时,使用{ }
表示代码块。
进行以下更改:
while (n <= 5) {
cout << n;
n++;
}
在上面的代码中,n++;
是循环的一部分,n
的值随着每次迭代而递增,最后当n
为6时,控件移出循环。
注意:当n
为5时,循环不会终止。当n
为6时,它会终止,因为您在n<=5
时要求循环运行。因此,即使n
为5,它也会运行。