java - 后增量,前增量。JAVA
问题描述
我了解此操作(后增量,前增量)之间的区别。但是问题:我有一个表达:
int x = 4;
long y = x * 4 - x++;
最高优先级具有后一元运算符,而不是“*”和最后一个“-”。在我看来,它将是:
long y = x * 4 - x++;
1). x++ => return 4 (save x = 5)
2). final expression: 5 * 4 - 4 = 16
但是当我在 IDE 中编译它时,答案是12
!有什么问题,我在哪里做的。错误的?
解决方案
long y = 4 * 4 - 4;
x 将在此分配后递增
每次使用 x++ “调用” x 时,它都会在 Eg 之后递增
int x = 1;
System.out.println(x++ + x++ * x++ + x++);
// 1 + 2 * 3 + 4
推荐阅读
- php - 如果键相同而不使用嵌套循环,则多维数组合并为一个数组
- c++ - 仅使用 CMake 函数的自定义 CMake 目标
- ios - 为什么要构建离子错误?- 错误 65
- sql - 如何在没有级联的情况下从多个表中删除?(SQLSERVER T-SQL)
- scala - 火花批量插入数百万条记录到 400 列 GC 限制的 sql 表中
- python - 部署 Tkinter:加载 Python dll/LoadLibrary 时出错
- ios - 可以检测ssid变化的ios后台应用
- sql - 仅计算每个月的活动记录
- c++ - Valgrind 报告 QThread::start() 上的内存泄漏
- javascript - 检查 grapqhl 查询返回的对象的形状