2016-08-27 1 views
0

Warum sind in dieser for-Schleife 2 Semikola? Dieser Code funktioniert richtig, aber ich würde gerne wissen, wie das funktioniert. Jede Hilfe ist willkommen :)Was ist der Zweck der 2 Semikola innerhalb "for (;;) {}"?

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 eine *** für *** Ever-Schleife –

+0

Es wird verwendet, um für eine Schleife ohne Beendigung oder ohne Überprüfung einer Bedingung auszuführen.Aber der Thread wird für eine Sekunde gestoppt, wie Sie in den Code und nach einem geschrieben haben Zweitens, die Schleife wird ihre Ausführung beginnen und wird für eine Sekunde anhalten und dieses Ding geht weiter und Sie werden einfach eine Uhr bekommen. –

Antwort

0

wenn eine for-Schleife, in vielen Sprachen zu schreiben, die Bedingungen Weglassen normalerweise gefunden Sie das System zu sagen, dass es unbedingte - Was bedeutet das für die Schleife laufen immer es sei denn, etwas kaputt geht aus der Schleife.

Dies wird oft verwendet, um eine Funktion einzurichten, die endlos als Daemon in einem System ausgeführt wird, oder etwas, das für die Dauer der clientseitigen Erfahrung ausgeführt wird.

viel Glück!

0

Eine for-Schleife sieht in der Regel wie folgt aus:

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

Oder more generally:

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

In Ihrer for-Schleife, wobei jeder dieser Teile ist leer:

for (;;) 

Diese bedeutet, dass die for-Schleife keine Initialisierung durchführt, keine Bedingung überprüft und keinen Nachsatz hat. Es bedeutet einfach "Schleife für immer".

Verwandte Themen