【发布时间】:2014-01-20 12:59:52
【问题描述】:
我了解 Java 中的后自增和预自增是如何工作的,并且我已经阅读了其他人关于同一主题的无数其他线程/问题。但!我还没有了解为什么在 Java 中后递增比预递增具有更高的优先级。
有人知道吗?
据我所知,后递增的优先级高于或低于前递增不会影响程序的结果,因为没有其他一元运算符会干扰后递增/预递增。此外,++ 不是二元运算符,因此它不会干扰 +、-、*、/ 和 %。因此.. 为什么?为什么后自增的优先级高于前自增?
我的动机是这样的:Java 的设计使得后增量比前增量具有更高的优先级,而且我还没有看到任何结果因这些规则而异的示例。所以我不明白为什么 post/pre-incrementing 没有相同级别的优先级
如果有人能启发我,我会很高兴! :)
这是一个声明 Java 优先规则/级别的官方网站:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
【问题讨论】:
-
您是否有任何代码可以证明其中一个优先级高于另一个?
-
要么接受 C 的优先级,要么去询问 James Gosling 或 Dennis Ritchie。通常是那些想要做令人发指的事情并提供任何理性人都不会编写的代码示例的人提出的。我看到它实际上可以追溯到 C 的前身 B。
-
@Rohit Jain 这里证明了在 Java 中后自增确实比预自增具有更高的优先级(指本表中的第 1 级和第 2 级)docs.oracle.com/javase/tutorial/java/nutsandbolts/…
-
你至少能用反建议来激发你的 WHY 吗?有什么好惊讶的?他们应该有 same 优先级是不是很明显?优先级应该反过来吗?
-
只是为了温暖你:
int i = Integer.MAX_VALUE; ++i--;优先级无关吗?
标签: java operators operator-precedence