请有人向我解释这条指令: for(;;)
我遇到了几种这样的标记(比如在facebook的ajax代码和Java的并发代码中)。
答案 0 :(得分:23)
无限循环。
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(;;)
省略所有三个部分。然后你有一个循环:
所以基本上是一个无限循环。它只是在循环体中一次又一次地执行它所说的
答案 1 :(得分:6)
这是一个无限循环。有关for
语句的详细信息,请参阅here。
答案 2 :(得分:5)
这是一个无限循环,类似于
while(true)
{
...
}
答案 3 :(得分:2)
它是一个无限循环,看到(不存在的)退出条件永远不会是假的。
任何没有退出条件的for循环都将是无限的:
for (int x=0; ; x++) { }
与while (true)
完全相同,虽然可怜的恕我直言。
答案 4 :(得分:2)
这确实是一个无限循环。但是在Java中你应该更喜欢while (true)
而不是for (;;)
,因为它更具可读性(你可能已经意识到)。无论如何,编译器将对其进行优化。在JavaScript中,没有编译器和HTTP上的每个字节计数,这就是为什么for (;;)
是首选的原因。它可以节省几个字符(字节)。
答案 5 :(得分:2)
for循环的语法是
for (init-stmt; condition; next-stmt) {
}
所以它只是一个没有初始语句,下一个语句或条件的for循环。缺乏退出条件使其无限。