Java 直接赋值或带有赋值的控制
我有一个游戏循环Java 直接赋值或带有赋值的控制,java,variable-assignment,Java,Variable Assignment,我有一个游戏循环 class Game extends Runnable { private boolean running = false; @Override public void run() { running = true; while(running) { //... } } } 我在想(在游戏循环中)直接赋值给一个变量或者在这之前用if控制是否更好。例如: x = true
class Game extends Runnable {
private boolean running = false;
@Override
public void run() {
running = true;
while(running) {
//...
}
}
}
我在想(在游戏循环中)直接赋值给一个变量或者在这之前用if
控制是否更好。例如:
x = true;
或
它们做同样的事情,但是第一个更容易阅读,并且不需要if语句
x = true;
//x is now true
if(!x) x = true;
//x is true if x wasn't true, if x was true before it is still true
如果(!x)x=true
不保证语句末尾的x
为真。这是因为在测试它和绕过分配之间,另一个线程可能会将x
设置为false
为了安全起见,请设置x=true
,这样会更快
从技术上讲,如果(!x)x=true,代码>在Java中不是原子的,但是x=true
是原子的
x = true;
//x is now true
if(!x) x = true;
//x is true if x wasn't true, if x was true before it is still true