java编程语言问题,i--和 i=i-1不一样的对吗?

i--可以代替i=i-1吗?... i--可以代替i=i-1吗? 展开
 我来答
幻之谁愚
2015-10-28 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:77%
帮助的人:920万
展开全部

不一样;

一般情况下,二者不会有什么差别,结果都是i-1之后的值复制给了i。但是如果在一个特殊的语句中,两个表达式就不见得完全相同了。

例如:

匿名用户
2013-07-22
展开全部

也不是完全一样。

比如说上述两个代码各占一行或者谓语for循环中,那么不会有什么差别,结果都是i-1之后的值复制给了i。但是如果在一个相对复杂的语句中,两个表达式就不见得完全相同了。


i--是先用再减,i=i-1不管你怎么用肯定是先执行i-1肯定是先减了1的。

如上述例子,就说明了二者的不同。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
禾木双子
2013-07-22 · TA获得超过260个赞
知道小有建树答主
回答量:204
采纳率:100%
帮助的人:150万
展开全部
部分情况可以,不过有些情况不能够完全替代。

如果单独两句
i--;和 i=i-1; 是完全一样的。

但是i--如果在 其他java语句中 如 a = i--; 则就是代表 a=i; i--; 这样两句话了。
一般情况下i=i-1,基本上可以被i--替换。 但是i--,在部分语句中要被i--替换,就可能需要更多的改动了,就像刚才的例子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s136357491
2013-07-22 · TA获得超过223个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:147万
展开全部
i=i-1是一个赋值表达式,而i--你可以看做一个函数

public int add(int i){
int temp=i;
i=i-1;
return temp;

}
可以看出,如果是论i的的改变的话,没有他们的效果是一样的(这里不要纠结值传递和引用传递)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanxuguang07
2015-10-16 · TA获得超过372个赞
知道小有建树答主
回答量:213
采纳率:100%
帮助的人:69万
展开全部
不一样,i--,执行时值还是i,执行完才回变成小1的值,
i=i-1执行时i的值直接就变了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式