У меня есть фрагмент кода, который выглядит следующим образом:
Algorithm a = null;
while(a == null)
{
a = grid.getAlgorithm();
}
getAlgorithm () в моем классе Grid возвращает некоторый подтип алгоритма в зависимости от того, что пользователь выбирает из некоторых параметров.
Моя проблема в том, что даже после выбора алгоритма цикл никогда не завершается.Тем не менее, это не самый сложный момент, если я просто размещу System.out.println («Got here»);после моего вызова getAlgorithm () программа работает отлично и цикл завершается, как и предполагалось.
Мой вопрос: почему добавление этого магического оператора печати внезапно приводит к завершению цикла?
Более тогоэта проблема впервые возникла, когда я начал использовать свой новый ноутбук, сомневаюсь, что это связано, но я подумал, что стоит упомянуть.
Редактировать: рассматриваемая программа НЕ является многопоточной.Код для getAlgorithm ():
public Algorithm getAlgorithm ()
{
return algorithm;
}
Где алгоритм изначально нулевой, но изменит значение при вводе пользователем.