关于java语法的一个很简单的问题~

java中i++,i+=,++i,i=i+1之间有区别吗?谢谢!... java中i++, i+=, ++i, i=i+1之间有区别吗?

谢谢!
展开
 我来答
viper大婶儿
2010-01-30 · TA获得超过417个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:219万
展开全部
做下补充:
首先,i+=1与i=i+1有一种情况下是不同的,举个例子:int i;i+=1.0;与int i;i=i+1.0;第一种情况编译会通过,而第二种情况会报错(可能损失精度),也就是楼上说的需强制类型转换的那种情况;
至于i++与++1之前的区别网上介绍很多,在此不再赘述(个人感觉对编程开发没什么意义)

再说下i=i+1与i++,有两点:1.对i的结果来说是一样的;2.而对于两个表达式的结果来说是不一样的,前面一个表达式返回值是i+1,后一个表达式的返回值是i;
另外对于机器来说,i++对应的机器码只需要一条指令,而i=i+1缺需要至少2条

还有就是好多人经常讨论的执行效率问题:
++i 最快
i++ 次之,多用一个临时变量
i+=1 第三,需要取地址
i=i+1 取地址并多用一个临时变量
(请略加参考,其实意义不大)
23746021
2010-01-30 · TA获得超过1467个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:400万
展开全部
前提
i = 2;

j = i++; // j为2,i为3,i先赋值,再加1,因为++在后面,你就记住,就是后加1。

j = ++i; // j为3,i为3,i先加1,再赋值,因为++在前面,你就记住,就是先加1。

i += 1;

i = i + 1;
是一样的。

我自己看了一下,好像百度的字体,i与j分得不是很清楚,不知道你能看出来,哪个是j,哈哈。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乁Freedom
2010-01-30 · TA获得超过2128个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1416万
展开全部
i++,++i,i=i+1 都属于变量自加1
i++,++i单独用的时候没有区别,都是自加1
假设n = 1;
k = n + i++;结果k = 2, i = 2,也就是说i++是表达式完成后它才执行
k = n + ++i;结果k = 3, i = 2,i先自加1然后再与表达式进行计算
通常新手会很在这个地方钻牛角尖,但是可以告诉你,这种问题没什么意义,真正写程序不会写这种 k = n + ++i - i++;这种乱七八糟的格式,这也是不规范的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古巴亚西jZ
2010-01-30 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:43.3万
展开全部
i++:先调用i,再加1。int i = 1; system.out.print(i++); 输出1,执行完i就变成2了
i+=1 与i=i+1 效果基本一致,但在细节上有出入,特别i不是int型时,牵扯类型转换的问题,可以查查资料
++i:i先执行+1,再输出。int i = 1;system.out.print(++i); 输出2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
若言诺
2010-01-30 · 超过24用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:81万
展开全部
仔细看运算那一张,算法很重要的,我就没仔细看..哈哈.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式