2016-08-27 3 views
0

왜이 for 루프에 세미콜론이 2 개 있습니까? 이 코드는 올바르게 작동하지만 어떻게 작동하는지 알고 싶습니다. 어떤 도움에 감사드립니다 :)"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

isl *** for *** ever 루프 –

+0

루프를 종료하거나 조건을 확인하지 않고 루프를 실행하는 데 사용됩니다. 코드에 기록한대로 스레드가 1 초 동안 정지됩니다 두 번째, 루프가 실행을 시작하고 1 초 동안 멈추고이 일이 계속되고 간단히 시계를 얻을 것입니다. –

답변

0

당신이 무조건있는 시스템 말하고있다 일반적으로 조건을 생략 여러 언어로, 루프를 발견 작성할 때 - 루프에 대한 뭔가 바꿈하지 않는 한 영원히 실행 의미를 루프 밖으로.

이것은 시스템에서 데몬으로 끝없이 실행되는 기능 또는 클라이언트 측 경험 기간 동안 실행되는 기능을 설정하는 데 자주 사용됩니다.

행운을 빈다! 루프

0

A는 일반적으로 다음과 같습니다

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

또는 more generally : 루프, 이러한 각 부분이 비어있는 당신에

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

:

for (;;) 

이 즉, for 루프가 초기화를 수행하지 않고 조건을 검사하지 않고 추가 고려 사항이 없음을 의미합니다. 따라서 단순히 "반복적으로 반복"을 의미합니다.

관련 문제