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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘辉林 中级黑马   /  2012-12-25 22:33  /  1771 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘辉林 于 2013-1-10 23:09 编辑

class  Demo
{
  public static void main(String[] args)
{
      int a = 5;
      System.out.println( a+=3+ a++ + ++a );
}
}
  程序运行结果是20,想了好久也没弄明白怎样得来的,求解题思路!

9 个回复

倒序浏览
李海鹏 发表于 2012-12-25 23:41
a++结果是5,++a结果是6,所以式子就成了a=a+3+5+6,这个时候a=6了,所以呢,a=6+3+5+6,不知道我表达的可以 ...

a++是先取值再运算,++a是先运算再取值。按你说的式子变成a= a+3+5+6,这时a不是等于7吗,a++后变成6,++a后不就变成7了?
回复 使用道具 举报
郭俊 发表于 2012-12-25 23:54
1,  a+=3+ a++ + ++a   这个式子用到了运算符的优先级   ++  的优先级高于 +=   
   2,    所以先运行 a ...

++a运算完怎么就直接跳到a+=3呢,这个+=不是最后才运算的吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马