for(i=0;i<10;++i) 循环几次?

[复制链接]
查看11 | 回复5 | 2018-5-10 18:44:06 | 显示全部楼层 |阅读模式
for(i=0;i<10;++i){}
for(i=0;i<10;i++){}
这两个语句分别被循环几次?为什么?

回复

使用道具 举报

千问 | 2018-5-10 18:44:06 | 显示全部楼层
都是10次上边两个for语句可以这样理解:第一个可以认为是for(i=0;i<10;)
{i++;}第二个语句可以认为是for(i=0;i<10;)
{++i;}
i++和++i单独成语句是没有任何区别的。在这里都是i在自加之后在判断是否小于10,满足条件的i从0到9,一共十个数字,所以就执行10次循环。
如果i++和++i不是单独成语句,比如将i++和++i作为右值就不一样了:
int p;
p=i++;

int p
p=++i;就是不同的了。
回复

使用道具 举报

千问 | 2018-5-10 18:44:06 | 显示全部楼层
都是10次 该循环是先对i赋初始值0 然后判断中间部分i<10 最后执行++i,i++ 由于最后的是单个表达式,所以两个i=10
回复

使用道具 举报

千问 | 2018-5-10 18:44:06 | 显示全部楼层
都是10次++i 和 i++仅仅是在使用的时候是取+前值还是+后值你这边的for循环判断语句执行之前已经做过过++的操作了所以不管是哪个,这个时候i的值都是++后的值了
回复

使用道具 举报

千问 | 2018-5-10 18:44:06 | 显示全部楼层
相当于这样:for(i=0; i<10; ){i++;}for(i=0; i<10; ){++i;}所以这里++i,和i++没有区别。都是10次
回复

使用道具 举报

千问 | 2018-5-10 18:44:06 | 显示全部楼层
10次,因为判断i<10是在i++迭代以后做的事情,所以前置和后置加加没有区别
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行