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