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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毛豆豆 中级黑马   /  2015-8-7 22:36  /  663 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a = 1;
a = a++;
a = ++a;
    System.out.println(a);
输出a的结果等于?



9 个回复

倒序浏览
结果等于 2

修改代码,你比较容易理解
int a = 1;
int b=0;
int c=0;
b= a++;  /*  此处b=1   a的初始值1赋值给b,a再后子增1就跟b 没关系了,运算完了你加你的,跟b没关系了。
                  这里我只是换了一个变量名来接收数据,跟你的a=a++是一个效果 */
c = ++b;/*  此处b已经的值已经是1了 ,上一句赋给它的,然后因为++放前面,先自增1  所以b=2 然后再赋值                       
              给c, 这里一样 我换了一个变量名来接收数据 ,跟你的a=++a是一个效果   */
System.out.println(a);
System.out.println(b);
System.out.println(c);

你只要记住 a++ 参与运算的话  就是先用它原来的值  然后再加1


回复 使用道具 举报
其实只要理解a++和a++的不同就好算了。这两个在单独存在的时候是一样的,但是加上其他的运算符的时候,a++是表示先做其他的运算然后自增,而++a是先自增再做其他的运算。
回复 使用道具 举报
很简单的,楼上说的不错                 
回复 使用道具 举报
流水王朝 来自手机 中级黑马 2015-8-7 23:43:22
报纸
呃,前来观摩
回复 使用道具 举报
应该是2吧
回复 使用道具 举报
a=a++;
表达式的值是1,a自增一次,但赋值的时候仍把表达式的值1赋值给a,a仍是1
a=++a;
a自增一次,表达式的值为2,赋值给a,a的值是2
回复 使用道具 举报

明白了  抓到一名同学
回复 使用道具 举报
不是很好的理解的吧,学习了
回复 使用道具 举报
毛豆豆 发表于 2015-8-8 14:29
明白了  抓到一名同学

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马