为什么。。
#include<stdio.h>
int main()
{
int sum,num;
for(sum = 0 , num = 0;num <= 3;num++ , sum++)
{
sum += num ;
}
printf("num = %d,sum = %d \n",num , sum);
return 0 ;
}
运行结果:
num = 4,sum = 10
#include<stdio.h>
int main()
{
int sum,num;
for(sum = 0 , num = 0;num <= 3;num++ , sum++)
{
sum += num ;
}
printf("num = %d,sum = %d \n",num , sum);
return 0 ;
}
运行结果:
num = 4,sum = 10
2019-09-28
首先,你要清楚for(表达式1;表达式2;表达式3)中3个表达式所代表的含义和执行的规则。
表达式1,初始化,for循环只执行一次;表达式2,作为判断,满足条件,执行for中循环体;表达式3,改变值,在最后执行,这也是为什么for循环中,如果执行次数大于1,则表达式3会比循环体多执行一次的原因。
然后我们看,第一次循环,sum=sum+num→sum=0+0,然后执行num++(num=num+1,num=1),sum++(sum=sum+1,sum=1);第二次循环,sum=sum+num→sum=1+1,然后执行num++(num=num+1,num=2),sum++(sum=sum+1,sum=3);........;当执行第四次时,num=3,sum=9后执行表达式3,num++(num=num+1,num=4),sum++(sum=sum+1,sum=10);执行到第五次,num>3,退出循环,printf当前值,num=4,sum=10
举报