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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 塞肥肥塞牙人 中级黑马   /  2014-9-5 21:20  /  752 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有一段程序是这样的:

public class Foo {
       public double crazyCalc(doublex, inty) {
                  x+=--y/x++;
                  return x*y
      }

      public static void main(String…args) {
                  Foo foo = new Foo()
                  int a = 14, b = 3;
                  double c;
                  c= foo, crazyCalc(b, a/=2);
                  System.out.println(c+'' ''+a+'' ''+b);
      }
}

答案输出分别为30.7  7  3

求大神指点30.7是如何算出来!!!

1 个回复

正序浏览
其实这里重点就是表达式 x+=--y/x++;  它等价于 x=x+(--y)/(x++) ,它又等价于下面的三句 y=y-1; x=x+y/x; x=x+1; 因此c=30   而a执行了a/=2,因此a变成了7,b没有动
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马