我有一段看起来像这样的代码:
Algorithm a = null;
while(a == null)
{
a = grid.getAlgorithm();
}
我的 Grid 类中的 getAlgorithm() 根据用户从某些选项中选择的内容返回算法的某些子类型。
我的问题是,即使选择了算法,循环也永远不会终止。但是,如果我简单地放置一个 System.out.println("Got here"); 在我调用 getAlgorithm() 之后,程序运行得非常好,并且循环按预期终止。
我的问题是:为什么添加那个神奇的打印语句会突然使循环终止?
此外,当我开始使用我的新笔记本电脑时,这个问题首次出现,我怀疑这是否相关,但我认为值得一提。
编辑:有问题的程序不是多线程的。getAlgorithm() 的代码是:
public Algorithm getAlgorithm ()
{
return algorithm;
}
其中 algorithm 最初为 null,但会在某些用户输入时更改值。