我有以下代码:
Integer b = 4;
System.out.println(b+++10);
为什么System.out.println
会评估该表达式?如果查看Java的源代码,您将找不到评估此表达式的代码。
另外,为什么b+++
有效?我以为变量后只能有两个+
。
提前致谢。
答案 0 :(得分:4)
如果您将代码放在Netbeans中并格式化(Alt-Shift-F),您会看到:
Integer b = 4;
System.out.println(b++ + 10);
结果是4 + 10
为14.命令后b
的值为5。
答案 1 :(得分:-1)
让我在这里引用@Rup来解答你的第一个问题:
评估它并不是真正的
println
- 如果你将它分配给一个变量并打印出你会得到相同的结果。
要添加它,正在评估该表达式的 Java 。如果你将它放入任何其他功能,它也会起作用。它是Java的一部分 - 它被称为“嵌套表达式”。
对于你的另一个问题,请参阅@ user000001的回答,并在评论中进行了讨论(我编辑了它以使其更清晰):
通常不清楚结果是15.
b
已增加。换句话说,即使
Integer b = 4; System.out.println(b++ );
已递增,b
也会给出4。 - BenMansourNizar@BenMansourNizar这是因为您正在使用后缀运算符(请参阅http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html。)使用
b++
首先使用该值,然后递增。如果使用++b
,则值将在使用前递增。 - user000001 2013年6月2日17:58非常感谢,user0000001 :) - BenMansourNizar
我希望你和其他人发现这些信息有用,我真的只是引用了一堆东西并对其发表了评论:P