VC++ 请教高手!

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:04:13
#include<stdio.h>
void main()
{
int x=3,y=0;
do{
printf("%3d",x-=2);
}while(!(--x));
}

以上的循环是什么意思?我看不懂,解释下

#include<stdio.h>
void main()
{
int x=3,y=0;
do{
printf("%3d",x-=2); x=x-2,第一次循环x=3-2=1,printf输出1,第二次循环x=0-2=-2,输出-2
}while(!(--x)); --x结果是0,取反为1,所以循环继续,第二次循环--x=-3,取反为0,循环结束
}

while(!(--x));

每次循环x减一,在x不为零时退出。

此处循环里先减二,再减一,到while处x为0,会继续循环一次,到第二次的时候为-3,它不为零则退出。