求教一个for循环的问题

seuduck 2013-04-08 09:37:33

int main()
{
int i=0,s=0;
for(i=1;s<100;i++)
{
s+=i;
cout<<s<<" "<<i<<endl;
}
cout<<i<<endl;
return 0;
}


执行结果

1 1
3 2
6 3
10 4
15 5
21 6
28 7
36 8
45 9
55 10
66 11
78 12
91 13
105 14
15


这是为什么呢?
为什么s越界后,还会再算一次
...全文
113 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
seuduck 2013-04-08
  • 打赏
  • 举报
回复
引用 3 楼 wxj198904 的回复:
for循环中的i++是在大括号中的内容都执行完后才操作的!所以最后要加一次啊!
一语惊醒梦中人 有时候一个人思考的确会很纠结,被你一说,瞬间豁然
seuduck 2013-04-08
  • 打赏
  • 举报
回复
引用 2 楼 huangjiadog 的回复:
因为你的是的增长是在函数体里面 那就表示s是91的时候,s<100,运行到 s+=i;s增长到105,然后输出,然后再检测循环条件,然后退出循环 然后输出i,然后就结束了
sorry,没有说清楚,其实我想知道的是为什么最后i变成了15
seuduck 2013-04-08
  • 打赏
  • 举报
回复
引用 1 楼 shenxuan520 的回复:
当s是91的时候还是小于100的加上14的时候才越界。。。。。跳出循环·····
sorry,没有说清楚,其实我想知道的是为什么最后i变成了15
wawLwxj 2013-04-08
  • 打赏
  • 举报
回复
for循环中的i++是在大括号中的内容都执行完后才操作的!所以最后要加一次啊!
汪达人 2013-04-08
  • 打赏
  • 举报
回复
因为你的是的增长是在函数体里面 那就表示s是91的时候,s<100,运行到 s+=i;s增长到105,然后输出,然后再检测循环条件,然后退出循环 然后输出i,然后就结束了
轩的学习笔记 2013-04-08
  • 打赏
  • 举报
回复
当s是91的时候还是小于100的加上14的时候才越界。。。。。跳出循环·····

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧