关于java的输出问题。。

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;)

一 中英文对齐输出问题

     问题,要求控制台输出如下:

    abcefg   def 

    森林    阿狗    

  其实就是要求对齐输出,各种查找java的格式化输出,然后发现只要一个简单的“\t”就可以实现。

      代码......
答案就在这里:Java中中英文对齐输出问题,以及Java中的格式化输出
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

我的理解是: 先赋值(a=2);再打印a

a=2是一个左值表达式,返回值为a.
你的写法相当于先对a赋值2,再使用a作为输出的参数。

应该是a=2这整个结果就直接是2;因为System.out.print("a="+(a=2));的输出结果是a=2

我的理解是: 先赋值(a=2);再打印a

System.out.println(a=2)
这一句如同以下效果:
a=2;
System.out.println(a);
输出:2

不知道楼主不明白什么?你的代码中 先给 a赋值1,在输出的时候先执行了 a=2,然后输出a的结果

第一次给a赋值为1,而在输出的时候相当于又给a赋值2,将第一的覆盖掉了,所以输出的结果是2.

在java中=是赋值运算符,你是想输出false吧,那要用a==2.

a=2,赋值给a
然后输出a

a=2,,然后打印a,,不过这样没什么意义

括弧里边是一个赋值操作,将a赋值为2,然后对a进行输出,此时输出的结果就是2.