内部2个分号的目的是什么?(;;){}"?

时间:2016-08-27 18:37:23

标签: loops date for-loop time

为什么这个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();
}

2 个答案:

答案 0 :(得分:0)

当写一个for循环时,在许多语言中省略了通常发现的条件,你告诉系统它是无条件的 - 这意味着for循环将永远运行,除非某些东西突破循环。

这通常用于设置一个函数,该函数将作为系统中的守护程序无限运行,或者在客户端体验期间运行的函数。

祝你好运!

答案 1 :(得分:0)

for循环通常如下所示:

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

或者,more generally

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

在for循环中,每个部分都是空的:

for (;;)

这意味着for循环不进行初始化,不检查任何条件,并且没有事后的想法。所以它只是意味着永远地循环。&#34;