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 = 1i 递减(我现在是 0) 语句(赋值)现已完成 (i = 1)

到底i是1


为了更清楚一点,您可以说i = i--; 行与此代码几乎相同:

int j = i;
i = i-1;
i = j;

【讨论】:

以上是关于java中的递减和赋值运算符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在C#三元运算符给出错误:只有赋值,调用,递增,递减和新对象表达式可用作语句

重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符

Java运算符:|=按位或并赋值示例[重复]

第五篇 JAVA运算符

赋值运算符中的引用返回[重复]

下标运算符递增递减运算符和成员访问运算符