java中的递减和赋值运算符[重复]
Posted
技术标签:
【中文标题】java中的递减和赋值运算符[重复]【英文标题】:Decrement and assignment operator in java [duplicate] 【发布时间】:2016-05-10 00:52:00 【问题描述】:谁能解释一下为什么下面代码的输出是1。
int i = 1;
i=i--;
System.out.println(i); // 1
【问题讨论】:
你应该这样做i = --i
@Mr.White,更好的是i--;
或--i;
您的用例实际上是预期的行为。
最好写成 i-- 或 i -= 1
【参考方案1】:
i--
执行以下步骤:
i
的值
将i
减 1
所以语句i = i--
做了以下事情:
i
(语句现在等于i = 1
)
i
递减(我现在是 0)
语句(赋值)现已完成 (i = 1
)
到底i
是1
为了更清楚一点,您可以说i = i--;
行与此代码几乎相同:
int j = i;
i = i-1;
i = j;
【讨论】:
以上是关于java中的递减和赋值运算符[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在C#三元运算符给出错误:只有赋值,调用,递增,递减和新对象表达式可用作语句
重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符