【发布时间】:2014-04-24 05:57:18
【问题描述】:
我在java中有以下代码
int x=5;
System.out.println(x++ + ++x);
输出为 12。
我认为应该是 11 点。
我们这里有三个运算符:
-
+加法 -
++(发帖) -
++(预) - 列表项
上面的打印语句是按什么顺序编译的?
如果我写int x=5; 然后++x,那么x==6 或x==5 因为我没有写x=++x。新值是否存储在 x 中?
寻找一种方法来记住 Java 或 .NET 中的运算符优先级,就像我们有 DMAS 一样。他们也可以类比吗?
【问题讨论】:
-
您确实意识到,如果人们停止做愚蠢的事情,他们就不会需要问这样的问题,不是吗? :-) 说真的,谁会写像
x++ + ++x这样的代码? -
@paxdiablo 如果在考试中我必须写出以下语句的输出,通过它只有 1 分,我应该说“谁做这个试卷”:)
-
@user1765876 说真的,我会 (a) 回答它并 (b) 问教授为什么他们会问这样的问题,因为这是你应该永远不会 i> 在现场看到。但是,我是从毕业后世界的舒适中说的,在那里教授不能再影响我了。 ;)
-
@yshavit 我同意我们在现实世界中看不到这样的事情,但这样的问题是检查/确保学生概念的好方法。
标签: java .net operators addition post-increment