A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李金伦 中级黑马   /  2015-7-2 23:07  /  1012 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Test
{
   public static void main(String[] args)
      {
          int a = 1;
          a = a++;
        System.out.println(a);
      }
}

为什么打印的结果是1,不是2,求解答

16 个回复

倒序浏览
因为a先将本身值1赋予了a然后在进行了自加1,所以输出的是1
回复 使用道具 举报
a=b++是先将b的值赋给a,再自加;a=++b,是b先自加然后再讲值赋给a
回复 使用道具 举报
     a = a++;
  他的底层是先将a参与赋值运算,赋值完成后成++,所以打印的就是1,而不是2。如果单独使用的话就是2。
回复 使用道具 举报
++a和a++是不一样
回复 使用道具 举报
++a先自增
a++先用后自增
回复 使用道具 举报
举个例子,希望你能了解的更清楚:
a=2,b=++a ;    答案a=3,b=3(自增前)
a=2,b=a++ ;    答案a=3,b=2(自增后)
回复 使用道具 举报
a++就已经相当于a=a+1了,感觉你写成a=a++,有点多余
回复 使用道具 举报
对于a++,a本身是先给自己赋值再自加1,而++a是a先给自己加1再运算。
回复 使用道具 举报
在java中,a++ 和 ++a的相同点都是给a+1, 不同点是a++是先参加程序的运行再+1,而++a则是先+1再参加程序的运行。
  1. public static void main(String[] args) {
  2.                 int a=2;   int b =a++;
  3.                
  4.                 int c=2;    int d=++c;
  5.                
  6.                 int e=6;
  7.                 int f=e++;
  8.                 int g=++e;
  9.                 System.out.println("a ="+a);
  10.                 System.out.println("b="+b);
  11.                 System.out.println("c="+c);
  12.                 System.out.println("d="+d);
  13.                
  14.                
  15.                 System.out.println("f="+f);
  16.                 System.out.println("g="+f);
  17.                
  18.         }
  19. }
复制代码

  1. a =3
  2. b=2
  3. c=3
  4. d=3
  5. f=6
  6. g=6
复制代码
回复 使用道具 举报
因为你把a++赋值给了a啊,所以a接收到的是a喽
回复 使用道具 举报
(1)a++呢,就是先赋值,再加加,int a = 1, 先赋值为1,再加加为2,
回复 使用道具 举报
mls123456 发表于 2015-7-3 22:07
(1)a++呢,就是先赋值,再加加,int a = 1, 先赋值为1,再加加为2,

理解a++,与++a 就好了,加油:)
回复 使用道具 举报
在a = a++中,根据符号的优先级,=会在最后进行计算,所以,首先会把a++中的a赋值给左边的a,然后才会计算a++,因此,打印出的结果是1.
回复 使用道具 举报 1 0
谢谢各位!
回复 使用道具 举报
xujixing 发表于 2015-7-3 15:10
在java中,a++ 和 ++a的相同点都是给a+1, 不同点是a++是先参加程序的运行再+1,而++a则是先+1再参加程序的 ...

恩现在理解了非常感谢!
回复 使用道具 举报
黑与白 发表于 2015-7-3 23:37
在a = a++中,根据符号的优先级,=会在最后进行计算,所以,首先会把a++中的a赋值给左边的a,然后才会计算 ...

非常感谢!易理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马