Java ++ 的疑惑

阅读 3.4k
1 个回答

要详细解答这个问题,可以看《Java语言规范》或者《深入Java虚拟机》。

我来个简单点儿的吧:

int m=(a++)+(a++);
       |      |
       ①  +  ②
       |      |
       └─────┘
          |
          m

由于括号的存在,在这个表达式中,我们需要计算 m = ① + ② 的值。(这个就不解释了,括号的优先级最高)

  • ① 的值:很简单就是 a++注意 此时 a++ 的值是 5,而 a 的值是 6。(有疑问吗?)

    • ① 的值: 5

    • a++的值:5

    • a 的值: 6

  • ② 的值:在第一布中, 我们求得了 a 的值 6,因此, ② 的值就是 6,注意此时 a 的值,是 7。(有疑问吗?)

    • ② 的值: 6

    • a++的值:6

    • a 的值: 7

  • 最后 m 的值,也就是 ① + ② 的值,5+6 = 11

    • m 的值: 11

    • a 的值: 7

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题