int a=1;
System.out.println(a=2);//2
有点不明白,是不是(a=2)这个整体表现出的就是2
int a=1;
System.out.println(a=2);//2
有点不明白,是不是(a=2)这个整体表现出的就是2
a=2是一个左值表达式,返回值为a.
你的写法相当于先对a赋值2,再使用a作为输出的参数。
支持这种说法。
首先要明白表达式的含义。表达式本身会返回某个值,对于赋值表达式,返回的结果为值本身。
Java表达式是变量、常量、运算符、方法调用的序列,它执行指定的计算并返回某个确定的值。
其中,运算符按操作数的数目:有一元运算符(++、--)、二元运算符(+、-、>等等)和三元运算符(?:),它们分别对应一到三个操作数。
表达式一般按运算符来分:
算术表达式(float x=8.3f、i++)、
关系表达式(3>7、3<7)、
布尔逻辑表达式((5>4)&&true、!false)、
位运算表达式(a=34^3)、
赋值表达式、
条件表达式(b=100>89?a=ture:a=false)
以及复合表达式。
还有一种叫“表达式语句”,就是在表达式后加上分号作为语句来使用。(int i=123;)