我試圖在while循環內執行5分鐘的代碼。java代碼不能用於while循環
long init= System.currentTimeMillis();
while(((System.currentTimeMillis()-time)/1000%60)<5){
//some part of code
}
但我無法得到它的任何建議如何解決它。
我試圖在while循環內執行5分鐘的代碼。java代碼不能用於while循環
long init= System.currentTimeMillis();
while(((System.currentTimeMillis()-time)/1000%60)<5){
//some part of code
}
但我無法得到它的任何建議如何解決它。
System.currentTimeMillis()
取決於實施和操作系統。
取而代之的是使用System.nanoTime()
,它返回最精確的可用系統定時器的當前值,以納秒爲單位。
這可能會導致您的時間問題。
long init= System.nanoTime();
while(((System.nanoTime()-init)/1000000000/60)<5){
//some part of code
}
如何通過System.currentTimeMillis()實現它? –
1000%60是錯誤的。讓它1000/60 – FallAndLearn
它工作嗎? – FallAndLearn
剛:更改代碼如下,然後再試一次:
while(((System.currentTimeMillis()-time)/1000%60)<5){
要
while(((System.currentTimeMillis()-init)/1000/60)<5){
變化time
到init
和%
到/
嘗試使用定時器請參閱https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html – Willmore
'time'變量指示什麼? –
long init = System.currentTimeMillis(); while(((System.currentTimeMillis() - init)/ 1000%60)<5){ –