執行while循環時,java會不斷檢查參數是否爲真?例如,如果一個while循環是while循環是否會停止執行?
while(k=7) {
Thread.sleep(5000);
}
但5秒另一個線程的變化k到8中,將循環繼續等待立即或退出?
執行while循環時,java會不斷檢查參數是否爲真?例如,如果一個while循環是while循環是否會停止執行?
while(k=7) {
Thread.sleep(5000);
}
但5秒另一個線程的變化k到8中,將循環繼續等待立即或退出?
該條件在開始檢查一次,如果所述主體的在每次迭代執行之後被輸入環路,一旦。所以不,它不會立即退出,即使k
在身體被執行時被改變。
哦,你的意思可能是k == 7
(回想一下==
比較,而=
指定)。有些人甚至會寫7 == k
以避免可能犯這個錯誤。
這並不真的有很多工作要做線程。例如,考慮:
int k = 7;
while (k == 7) {
k = 8;
System.out.println("here!");
}
here!
注意身體如何仍是完全即使k
執行被立即改變爲一個值,不再滿足循環條件。
不會。即使k
是易失性的(或者更糟糕的是,從另一個線程改變而沒有將其變爲易失性;壞主意),或者其屬性可能通過循環內部調用的方法更改的對象,它將僅在循環體的結尾,決定重複身體或繼續循環。
您可以通過中斷線程,並具有循環外抓跳出循環,或進行內部檢查和break
。
你正在使用'='的'而不是'==。錯字可能是。其次,'k'是一個實例變量嗎? –
'k'是什麼?您已經遺漏了與之相關的代碼... –
每一行都會執行它所說的內容並且不再執行任何操作。它不知道在其他情況下可能會做些什麼。當它睡着時,它就是這樣做的。順便說一句,如果它立即停止,設置睡眠時間的重點是什麼? –