C++ while(--i) 是什么意思。。请高人指点

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:18:33
看到一题目
#include<iostream>
using namespace std;
int main()
{
int num=0,i=8;
do{
i--;
cout<<i<<endl;
num++;
cout<<num<<endl<<endl;
}while(--i);
cout<<num<<endl;
return 0;
}
请高人指点下 里边while(--i); 这个条件是怎么搞的,运行出来是4 是怎么循环结束的呀。。。

这个意思是说只要i不是0,就一直循环下去。你在while(--i)里面减1,然后又在循环体内减一,i--,所以循环一次就减了2,你的i=8,所以最后是4

这段程序很简单的:
do while 执行第一遍后:i=6,num=1;
do while 执行第二遍后:i=4,num=2;
do while 执行第三遍后:i=2,num=3;
do while 执行第四遍后:i=0,num=4;
此时,i=0,不满足循环的条件,跳出do while循环,然后输出num(=4)。

while(--i) 就是当i 不为0时,就为真;--i就是先减后用,在此即是先减1在判断i是否为零。

--i是条件 当它为零时 条件不满足 也就是为假 跳出循环