有一些代码:
int a = 1111;
a = a-- - --a;
a = a++ + ++a;
我知道前缀和后缀运算符。但是你能解释一下这些表达式中执行的操作顺序吗?
有一些代码:
int a = 1111;
a = a-- - --a;
a = a++ + ++a;
我知道前缀和后缀运算符。但是你能解释一下这些表达式中执行的操作顺序吗?
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
.
a = a-- - --a; //1111 - 1109 = 2
a = a++ + ++a; // 2 + 4 = 6
第一行:a-- 被评估为 1111,然后递减到 1110,然后 --a 递减到 1109 并评估为 1109。
第二行:a++ 被评估为 2,然后递增到 3,然后 ++a 递增到 4 并评估为 4。