有以下程序
main()
{ int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf(“%d\n",s);
}
s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=j”后,i和s的值分别为3和3,再次判断循环条件,表达式“3<3”不成立,循环结束。
问题来了,输出结果为什么是5?
在求for循环时遇到问题,求解!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
CSDN专家-link 2021-12-08 20:21关注你的理解有点错误。i++,s+=i是循环结束再执行。所以循环第一遍执行完后,才执行表达式i++,s+=i,这个表达式先执行i++,执行完后i=2,然后s+=i,这样s就是2。第二次循环同样执行完后才执行表达式i++,s+=i,执行完后i=3,s+=3,s=2+3=5
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用