我有一段代碼,看起來像這樣:在我的網格類)奇怪的Java問題,而循環終止
Algorithm a = null;
while(a == null)
{
a = grid.getAlgorithm();
}
信息getAlgorithm(這取決於用戶從某些選項選擇算法的某些亞型返回。
我的問題是,即使在選擇算法後,循環也不會終止。但是,如果我只是放置一個System.out.println(「Got here」),那並不是棘手的問題。在我調用getAlgorithm()之後,程序運行得非常好,循環終止了。
我的問題是:爲什麼添加那個magic print語句突然讓循環終止?
此外,當我開始使用我的新筆記本電腦時,這個問題首次出現,我懷疑這是相關的,但我認爲這值得一提。
編輯:有問題的程序不是多線程的。 getAlgorithm()的代碼是:
public Algorithm getAlgorithm()
{
return algorithm;
}
其中算法最初爲空,但會在某些用戶輸入時更改值。
哦,親愛的請告訴我,您在等待用戶輸入時不會像這樣循環... – 2011-03-13 03:49:22
發生這種情況的唯一方法就是如果返回null。如果它不爲null,則循環將退出。檢查'getAlgorithm()'的來源或在循環中打印出它的內容以確認它不爲空。 – berry120 2011-03-13 03:52:17
@Travis - 看起來更像是一個迭代器,對第一個非空算法進行線性搜索。但是誰知道? – 2011-03-13 03:52:42