Baa*_*aru -21 java operator-precedence operator-keyword
考虑这个表达式:
x1 = ++x - x++ + --x
Run Code Online (Sandbox Code Playgroud)
如果输入 x 的值 5
java中这种表达式的输出是什么,为什么?
+ 或 - 没有更高的优先级。
没有括号,它们只是按外观顺序执行,让我们考虑您的示例:
public class Test {
public static void main(String[] args) {
int x = 5;
int x1 = ++x - x++ + --x;
System.out.println(x1);
}
}
Run Code Online (Sandbox Code Playgroud)
将打印 6
前/后自增/自减有四种操作:
++x 将在计算前递增(在表达式中使用其值之前)--x 将在评估前递减x++ 计算后将增加(在表达式中使用其值后)x-- 评估后将决定将表达式分解为多个部分:
1) " ++x" x 将在表达式中使用它的值之前增加 1,所以现在它是:
6 -
Run Code Online (Sandbox Code Playgroud)
2) " - x++" x 将在表达式中使用其值后加一,所以它是:
6 - 6 , but now x=7
Run Code Online (Sandbox Code Playgroud)
3) " + --x" x 将在其值被使用之前减一,因此它最终转换为:
x1 = 6 - 6 + 6;
Run Code Online (Sandbox Code Playgroud)
这将被执行为:
x1 = 0 + 6;
x1 = 6;
Run Code Online (Sandbox Code Playgroud)
显然,+or没有更高的优先级-,因为它只是按照出现的顺序减去和添加。
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |