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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Freedom

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

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

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 新人报到,赞一个!

查看全部评分

5 个回复

倒序浏览
本帖最后由 林康春 于 2012-8-4 14:19 编辑

a+=2+ a++ + ++a
  a =(a+2)+(a++)+(++a)这时候a 的值是1
   a=3+(a++)+(++a) 这时候a 的值是1
  a =4+(++a) 这时候a 的值是2
  a=4+3 这时候a的值是3
a=7

你这个问题都是基础的知识,注意运算顺序
发个运算 优先级的图给你
[size=111%]l


图片1.png (63.31 KB, 下载次数: 24)

图片1.png
回复 使用道具 举报
本帖最后由 黑马李文 于 2012-8-4 14:30 编辑

就是左边加右边在赋值给左边~     其中a+=2+ a++ + ++a    可以写成这样给你看看 a =(a+2)+(a++)+(++a)  运行结果为7  还有就是这么一小段程序你错误很多~~应该这样写~
  1. class demo1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int a = 1;
  6.                 System.out.println(a+=2+(a++)+(++a));
  7.         }
  8.         
  9. }
复制代码
回复 使用道具 举报
System.out.println( a+=(2+ (a++) + (++a) ));
回复 使用道具 举报
本帖最后由 尤洋 于 2012-8-4 16:02 编辑

给你讲细致一点,点开看大图。
回复 使用道具 举报
a+=2+ a++ + ++a
+号移到右边就是a+=a+2+(a++)+(++a)
a=1,a+2=3,a++是后置运算,先参加运算,再自增。
++a是前置运算,先自增,再参加运算。
所以a++此时是1,++a此时是2
a=a+2+(a++)+(++a)
=3+(a++)+(++a)
=4+(++a) 这时候a++生效,a此时是2了,++a这时候就是3
=4+3
=7

public static void main(String[] args)
{
         int a = 1;
         System.out.println(a+=2+(a++)+(++a));
}
结果是7

写的有点乱,汗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马