结果:4
#include <stdio.h>
void main()
{
int n=0;
while(n++<=2);
printf("%d\n",n);
}
结果:2,0,0
void main()
{
int a,b,c;
int s,w,t;
s=w=t=0;
a=-1;b=3;c=3;
if(c>0)
s=a+b;
if(a<=0)
{
if(b>0)
if(c==0)
w=a-b;
}
else if(c>0)
w=a-b;
else t=c;
printf("%d,%d,%d",s,w,t);
}
n++是后自增,先使用n,再加1.
while(n++<=2);
n等于2的时候,满足条件,当n等于3时,不满足条件,结束循环,并且n++结果为4.
while(n++<=2)循环结束时是n=3,循环结束后还需要n++,所以最终n=4
c>0成立,所以s=a+b=2
a<=0成立,b>0成立,c==0不成立,所以 w=a-b不执行
所以最终w和t还是初始值0
第一个没有循环体
第一遍:n++<=2,0<=2成立,n++,n=1
第二遍:n++<=2,1<=2成立,n++,n=2
第一遍:n++<=2,2<=2成立,n++,n=3
第一遍:n++<=2,3<=2不成立,n++,n=4
跳出循环输出
第二个
c>0成立,s=a+b; s=-1+3=2
if(a<=0)成立,不执行15-17行, 执行if(b>0)成立,执行if(c==0)不成立,不执行w=a-b;
最后输出,只有s的值变成了2,其他仍然是0