请教i++与++i的区别

inti=1,j=10;do{if(i>j)continue;j--;}while(++i<6);inti=1,j=10;do{if(i>j)continue;j--;}... int i=1,j=10;
do{
if(i>j)continue;
j--;
}while(++i<6);

int i=1,j=10;
do{
if(i>j)continue;
j--;
}while(i++<6);

前者输出i=6,j=5
后者输出i=7,j=5
求指点 非常感谢!
展开
 我来答
子不语望长安
高粉答主

2018-11-22 · 说的都是干货,快来关注
知道答主
回答量:37
采纳率:0%
帮助的人:3.1万
展开全部

i++和++i命令的区别有:


1、赋值顺序不同


++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的。

因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b,即 ++i 是一个左值;i++ 的后面一步是自增,不是左值。


形象的理解可以是i++先做别的事,再自己加1,++i先自己加1,再做别的事情。


2、单独使用时一样


独立使用时++i 和 i++二者效果一样,就是 i=i+1。表达式中i++取i的值参与运算,而++i取i+1的值参与运算。举例 a = ++i,相当于 i=i+1; a = i; a = i++,相当于 a = i; i=i+1。


3、效率不同


比如i=3,b=i++就是说b=3,完成之后让i变成4,b=++i就是先让i++变成4,然后b=4,其中++i比i++效率要高些。一般来说在循环域里面,这两者并没有什么很大的区别,但是要注意其生存周期,以及i值在程序流中的变化。


扩展资料:


++i 和i++ 的使用,一般来说在循环域里面,这两者并没有什么很大的区别,因为编译器一般都会给你做优化。但是要注意其生存周期,以及很难察觉的写脏,就好像指针delete以后一定要赋予0一样,我们要注意i值在程序流中的变化。


使用具体解释:


解释一:++i的返回值是i+1,并且i=i+1;


i++的返回值是i,并且i=i+1;


也就是如果i=1,那么j=++i=2,j=i++=1。


解释二:i=1;


如果y=++i;


就需要把++和i相加的数值赋给y也就是2;


如果y=i++的话;


那y的值就是1;


因为++在后面的话这种情况要先赋值所以等于1。

参考资料:百度百科-++

珍惜所有所爱
推荐于2018-04-13 · TA获得超过538个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:62.4万
展开全部
重点是在于++i与i++的区别
1.在单独使用的时候i++ 和++i效果相同

i++; 或++i;一样。
2.要是放在执行语句中时,两个的意义就不一样了
如 while(i++<6)意思是先执行后运算,也就是先判断i<6后再i=i+1;
相反while(++i<6)意思是先运算后执行,也就是先i=i+1后判断i<6;

这里有个自己的记忆方法,
++在后则后运算(如i++<6)
++在前则先运算 (如++i<6)
不知道这样能理解了没
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有尼采的耳朵
推荐于2016-02-09 · TA获得超过124个赞
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
++i<6
这个表达式将i+1与6比较;
i++<6
这个表达式将i与6比较。
但两个表达式计算完毕后,i的值都会在原基础上加1。
第一种情况++i<6中,当i的值为5时,i+1不小于6,循环终止,i自加为6.
第二种情况i++<6中,当i的值为5时,i小于6,循环继续,i自加为6,此时j=5,i大于j,跳过j--这步进入循环条件判断,此时i的值为6,i不小于6,循环终止,i自加为7.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友72d832d
2011-06-06 · TA获得超过7158个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:352万
展开全部
i++是用完i后再进行i=i+1的运算
++i是还没用i之前就进行i=i+1的运算.
类比可以得到i--,--i的意义
分析上题(1)第一问:i=1,j=10; 比较完后j减去1,但要注意的是++i跟6进行比较时,已经进行加一的运算,所以是2与6比较.以此类推,可得j=5,即j减5此,那么i要加5次,所以i=6,j=5
(2):第二问进行一次循环后j减去1,但注意在跟6比较时i仍然是1.可见i加1,比上题慢了一拍,当j=5时,
i=5与六比较,发现仍满足循环条件,比较完后要进行i=i+1 运算,此时i=6,但我们已经说过,现在满足循环条件,所以再做一次循环体, 因为if(i>j)则,循环中断跳出, 跳出时再与6比较,发现不满足循环条件,所以应该结束循环,但此时别忘记再进行一次i=i+1运算哦.
祝学习进步,O(∩_∩)O~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
khhg2bc70
2011-06-07 · TA获得超过4515个赞
知道小有建树答主
回答量:785
采纳率:0%
帮助的人:387万
展开全部

i++取i当前的值。然后在表达式运算完后对i加上1
++i是取i加上1后的值!!
都看书呀!!
这题目很简单!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式