请问有人能为我解释一下这个指令的含义:for (;;)
我在 Facebook 的 AJAX 代码和 Java 的并发编程中遇到过几种这样的写法。
请问有人能为我解释一下这个指令的含义:for (;;)
我在 Facebook 的 AJAX 代码和 Java 的并发编程中遇到过几种这样的写法。
一个无限循环。
for循环的三个部分(for(x; y; z)
)都是可选的。
所以你可以这样做:
int i = 0;
for (; i < 20; ++i)
而且这是完全有效的,或者
for (int i = 0; i < 20;) { ++i; }
或者for (int i = 0; ; ++i) { if (i < 20) { break; } }
它们都是有效的。
你也可以使用for(;;)
省略三个部分。这样你就有一个循环:
所以基本上是一个无限循环。它只是一遍又一遍地执行循环体中的内容。
true
,则执行包含的 语句。 - Adam Rosenfieldwhile(true)
{
...
}
这是一个无限循环,因为(不存在的)退出条件永远不会变成假。
任何没有退出条件的for循环都将是无限的:
for (int x=0; ; x++) { }
这与while (true)
完全相同,尽管在我看来略微不太易读。
for (init-stmt; condition; next-stmt) {
}
这确实是一个无限循环。但在Java中,你应该真正偏爱while (true)
而不是for (;;)
,因为它更易读(你可能已经意识到了)。编译器会对其进行优化。在JavaScript中没有编译器的手段,每个字节都会通过HTTP传输,这就是为什么首选for (;;)
的原因。它可以节省一些字符(字节)。
while (true)
的可读性 - whiskeysierrafor(;;)
更易读。 - jalf