-2

有一些代码:

int a = 1111;
a = a-- - --a;
a = a++ + ++a;

我知道前缀和后缀运算符。但是你能解释一下这些表达式中执行的操作顺序吗?

4

2 回答 2

1

Java 总是从左到右。所以你的代码是:

a = 1111;
a = 1111 - 1109 //2

a = 1111;
a = 1111 + 1113 //2224

a = 1111;
a = 1111 - 1109 //2
a = 2 + 4 //6

简单的英文翻译:

a = a-- - --a

取存储在 中的值a,稍后递减该值,但不要更改已存储的内容,然后减去 的当前值a,但在递减前一刻。将结果存储在a.

于 2016-10-24T08:46:55.470 回答
1
    a = a-- - --a; //1111 - 1109 = 2
    a = a++ + ++a; // 2 + 4 = 6

第一行:a-- 被评估为 1111,然后递减到 1110,然后 --a 递减到 1109 并评估为 1109。

第二行:a++ 被评估为 2,然后递增到 3,然后 ++a 递增到 4 并评估为 4。

于 2016-10-24T08:53:02.023 回答