为什么这个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();
}
答案 0 :(得分:0)
当写一个for循环时,在许多语言中省略了通常发现的条件,你告诉系统它是无条件的 - 这意味着for循环将永远运行,除非某些东西突破循环。
这通常用于设置一个函数,该函数将作为系统中的守护程序无限运行,或者在客户端体验期间运行的函数。
祝你好运!答案 1 :(得分:0)
for循环通常如下所示:
for (int i = 0; i < 5; i++)
或者,more generally:
for (/* initialization */; /* condition */; /* afterthought */)
在for循环中,每个部分都是空的:
for (;;)
这意味着for循环不进行初始化,不检查任何条件,并且没有事后的想法。所以它只是意味着永远地循环。&#34;