DarkmoonYZW 2019-09-26 16:57 采纳率: 100%
浏览 255
已采纳

for语句执行顺序,这两句有什么区别,为何结果不一样?

为什么第一个会少计算了100

#include
using namespace std;
void main()
{
int sum = 0;
int i;
for (i = 1;i <= 100; sum += i,i++)
cout << "sum=" << sum << endl;
}

#include
using namespace std;
void main()
{
int sum = 0;
int i;
for (i = 1;i <= 100; i++)
sum += i;
cout << "sum=" << sum << endl;
}

  • 写回答

3条回答 默认 最新

  • boatarmy 2019-09-26 17:15
    关注

    for拆开步骤是
    step1:初始化i=1;
    step2:判断i<=100
    step3:执行for内容
    step4:调整sum+=i,i++
    所以
    for (i = 1;i <= 100; sum += i,i++)
    cout << "sum=" << sum << endl;
    会先执行cout << "sum=" << sum << endl,再sum+=i,再i++
    循环100次

    for (i = 1;i <= 100; i++)
    sum += i;
    cout << "sum=" << sum << endl;
    会先执行sum+=i,循环100次后,再执行一次cout << "sum=" << sum << endl;
    结果肯定不一样了

    建议写的时候,把花括号打上,这样的风格除了显示自己写乱序代码牛掰以外,没有任何用处

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料