为什么下面代码的输出停在0

Why the output in following code stops at 0?

本文关键字:输出 代码 为什么      更新时间:2023-10-16
#include<iostream>
using namespace std;
main()
{
   int test =3;
   while(test--)
   {
      cout<<test;
   }
}

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

cc++中,任何非零都被求值为真,零被求值为假。这就是它停在0的原因。for for循环也是如此。

因此有时会发现-

while(1){
  //do something 
  if(some_condition) break;
}   

这意味着它是一个无限循环——永远运行。

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

因为0int值在布尔表达式中计算为false,而while()循环在条件中停止于false

将while循环中的条件设置为test——,它将执行3次。当test为1时,它等于while(1)或while(true)并继续while循环。当test为0时,它等于while(0)或while(false), while循环停止。为什么是210年?因为你打印的时候没有"new line"