这是我的循环类:
public class Timer {
private Timer timer;
private static boolean isRunning = true;
public static void gameLoop()
{
while(isRunning) //the loop
{
try {
Main.cash--;
Thread.sleep(2000);
} catch (InterruptedException e) {
// e.printStackTrace();
}
}
}
}
当我运行applet时,我得到一个白色屏幕,我无法关闭applet,我必须在eclipse中使用terminate按钮。
答案 0 :(得分:4)
while(isRunning=true) //the loop
...将isRunning
设置为true,然后返回true(无论isRunning
的先前值是什么),因此始终执行if语句。单个=是一个赋值,在这种情况下几乎肯定不是你想要做的。
您想使用==代替:
while(isRunning==true) //the loop
或者,更简洁(也最好是!)简单地说:
while(isRunning) //the loop
我假设代码中的其他位置isRunning
将被设置为false,因为这里没有任何内容将其设置为false。
答案 1 :(得分:4)
在while循环中,您尝试将布尔值与=
进行比较,但这是赋值运算符。它始终是true
,这会导致无限循环。
使用==
比较布尔值。
或者更好,只需使用while (isRunning)
。
答案 2 :(得分:0)
有两个问题。
首先使用赋值运算符而不是while循环中的比较运算符。
while(isRunning=true)
应该是:
while(isRunning==true)
第二个isRunning
永远不会设置为false。
这两个问题导致无限循环。