我收到一个非常奇怪的错误。我有以下代码:
while (true) {
System.out.println(model.getLightState());
if (model.getLightState() == 1) {
System.out.println("Entered..");
view.driveThroughJunction();
break;
}
}
现在,当灯光状态变为“1”时,我的程序进入 if 语句并执行正常的代码。但这仅在进入 while 循环后有该打印输出语句时才有效。我觉得这很奇怪。'sysout' 行会对 if 语句有任何影响吗?显然它适用于上述情况。
为什么会这样?
编辑:
(in the model class)
public final byte getLightState() {
return lightChanger.getLightValue();
}
(in lightchanger class)
public byte getLightValue() {
return light.getState();
}
(in the light class)
public final byte getState() {
return this.state;
}