为什么以下代码中的输出停在0?

时间:2015-05-30 10:09:47

标签: c++

#include<iostream>
using namespace std;
main()
{
   int test =3;
   while(test--)
   {
      cout<<test;
   }
}

上面的代码显示输出210.我的问题是为什么它停在0 ??为什么它不能超过0?

3 个答案:

答案 0 :(得分:3)

printf("Address: %p\n",(void*)etf) c中,任何非零值都会被计算为true,而零值将被计算为false。这就是为什么它停在c++。事实也适用于for循环。

因此有时可能会找到 -

0

这意味着它是一个无限循环 - 始终运行。

答案 1 :(得分:1)

  

&#34;上面的代码显示了输出210.我的问题是为什么它停在0 ??为什么它不能超过0?&#34;

因为int的{​​{1}}值在布尔表达式中计算为0,并且false循环在条件中停留在while()。< / p>

答案 2 :(得分:1)

你将while循环中的条件设置为test--,它将被执行3次。当测试为1时,它等于while(1)或while(true),并且它在循环时继续。 当测试为0时,它等于while(0)或while(false),并且它在循环时停止。 为什么210?因为你打印它没有&#34;新线&#34;印刷品之间。