<分区>
我遇到了一个非常奇怪的错误。我有以下代码:
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;
}