2016-08-27 44 views
0

爲什麼在這個循環中有2個分號?此代碼正常工作,但我想知道這是如何工作的。任何幫助表示讚賞:)「for(;;){}」裏面2分號的用途是什麼?

public void CurrentDate() { 

    Thread clock = new Thread() { 

     public void run() { 
      for (;;) { 
       try { 

        Calendar cal = new GregorianCalendar(); 
        int month = cal.get(Calendar.MONTH); 
        int year = cal.get(Calendar.YEAR); 
        int day = cal.get(Calendar.DAY_OF_MONTH); 
        date.setText("Date: " + year + "/" + (month + 1) + "/" + day); 

        int second = cal.get(Calendar.SECOND); 
        int minute = cal.get(Calendar.MINUTE); 
        int hour = cal.get(Calendar.HOUR); 
        time.setText("Time: " + hour + ":" + (minute) + ":" + second); 

        sleep(1000); 
       } catch (InterruptedException ex) 
       { 
        Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
       } 
      } 
     } 
    }; 
    clock.start(); 
} 
+1

ist a *** for *** ever loop –

+0

它用於執行for循環而不終止它或者沒有檢查任何condition.But線程將被停止一秒鐘,因爲你已經寫了代碼,第二,循環將開始執行,並停止一秒鐘,這件事情繼續下去,你會得到一個時鐘。 –

回答

0

for循環寫時,在許多語言中省略的條件通常存在你說的是系統,這是無條件 - 這意味着for循環將永遠運行,除非東西壞了跳出循環。

這通常用於設置一個函數,該函數將作爲系統中的守護進程無休止地運行,或者在客戶端體驗期間運行。

祝你好運!

0

for循環通常是這樣的:

for (int i = 0; i < 5; i++) 

或者more generally

for (/* initialization */; /* condition */; /* afterthought */) 

在你的for循環中,每個部分是空的:

for (;;) 

這意味着for循環不進行初始化,不檢查條件,也沒有事後考慮。所以它只是意味着「永遠循環」。