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

i--可以代替i=i-1吗?
2024-11-17 11:39:42
推荐回答(5个)
回答(1):

不一样;

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

例如:

回答(2):

也不是完全一样。

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


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

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

回答(3):

部分情况可以,不过有些情况不能够完全替代。

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

但是i--如果在 其他java语句中 如 a = i--; 则就是代表 a=i; i--; 这样两句话了。
一般情况下i=i-1,基本上可以被i--替换。 但是i--,在部分语句中要被i--替换,就可能需要更多的改动了,就像刚才的例子。

回答(4):

i=i-1是一个赋值表达式,而i--你可以看做一个函数

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

}
可以看出,如果是论i的的改变的话,没有他们的效果是一样的(这里不要纠结值传递和引用传递)

回答(5):

不一样,i--,执行时值还是i,执行完才回变成小1的值,
i=i-1执行时i的值直接就变了