【发布时间】:2020-12-21 02:48:14
【问题描述】:
我在测试中遇到了一个令我感到困惑的问题(代码附在下面)。简而言之,我认为变量被重新分配,然后作为一个值添加回表达式(使输出为“8, 10”),但似乎原始值没有改变。我错过了什么?
附言抱歉,如果存在类似问题,我找不到(可能太明显了:P)。
class InitTest{
public static void main(String[] args){
int a = 10;
int b = 20;
a += (a = 4);
b = b + (b = 5);
System.out.println(a + ", " + b);
}
}
【问题讨论】:
-
请不要编写这样的代码 - 正如您可能已经注意到的那样,遵循它实际在做什么会令人困惑。
-
@Taschi:像这样的糟糕代码可能是编程认证考试的基石
-
@HovercraftFullOfEels,我不是经过认证的 Java 开发人员,但如果认证考试真的教会人们依赖边缘案例,那么更需要指出的是,这不是好的代码。跨度>
-
@Taschi-corporationsarebad 这不是我的代码????这是一个例子,我必须选择一个答案。
标签: java variable-assignment expression-evaluation