次のようなコードがあります。
Algorithm a = null;
while(a == null)
{
a = grid.getAlgorithm();
}
私のGridクラスのgetAlgorithm()は、ユーザーがいくつかのオプションから何を選択したかに応じて、Algorithmのサブタイプを返します。
私の問題は、アルゴリズムが選択された後でも、ループが終了しないことです。ただし、System.out.println( "Got here");を配置するだけの場合は、これは難しいことではありません。getAlgorithm()を呼び出した後、プログラムは完全に正常に実行され、ループは意図したとおりに終了します。
私の質問は、なぜその魔法の印刷ステートメントを追加するとループが突然終了するのですか?
さらに、この問題は私が新しいラップトップを使い始めたときに最初に発生しました。それが関連しているとは思えませんが、言及する価値があると思いました。
編集:問題のプログラムはマルチスレッドではありません。getAlgorithm()のコードは次のとおりです。
public Algorithm getAlgorithm ()
{
return algorithm;
}
ここで、アルゴリズムは最初はnullですが、ユーザー入力によって値が変更されます。