-2

我有以下代码:

Integer b = 4;      
System.out.println(b+++10);

为什么要System.out.println评估该表达式?如果您查看 Java 的源代码,您将找不到计算此表达式的代码。

另外,为什么b+++有效?+我认为变量后面只能有两个。

提前致谢。

4

2 回答 2

4

如果您将代码放入 Netbeans 并对其进行格式化(Alt-Shift-F),您将看到:

    Integer b = 4;
    System.out.println(b++ + 10);

所以结果是4 + 1014。b命令后的值为 5。

于 2013-06-01T17:21:35.537 回答
-1

让我在这里引用@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

于 2017-09-26T21:18:50.113 回答