2016-08-27 8 views
0

なぜこのforループに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

*** for *** everループ –

+0

これは、ループを終了せずに、または条件をチェックすることなくループを実行するために使用されます。しかし、コードに書かれているようにスレッドは1秒間停止します秒、ループは実行を開始し、1秒間停止し、このことが続くと、あなたは単にクロックを取得します。 –

答えて

0

ループのために書いて、多くの言語で条件を省略し、通常あなたはそれが無条件あるシステムを言っている見つけたとき - ループのために何かブレークしない限り、永遠に実行できることを意味しますループの外に出る。

これは、システム内のデーモンとして無限に実行される機能、またはクライアント側の操作の間実行される機能を設定するためによく使用されます。

幸運! forループ

0

Aは、通常、次のようになります。

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

または、more generally:ループのために、これらの部品のそれぞれが空であるあなたには

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

for (;;) 

このつまり、forループは初期化を行わず、条件をチェックせず、後から考慮しません。したがって、単に「ループを永遠に」することを意味します。

関連する問題