这是这样的事情:
for(;;)
{
statements;
}
或者就是这样:
for(initialisation;condition;updation)
{
}
我正在寻找各种来源的答案。
答案 0 :(得分:30)
你的第一个案例(带有空表达式的 )是一个无限循环,第二个案例(用于语句的空体)是一个空循环
答案 1 :(得分:4)
在我的环境中,它是这样的:
for(;;) { statements; }
无限循环
for(initialisation;condition;updation) { }
空循环
答案 2 :(得分:2)
答案取决于上下文。
如果您指的是 循环,那么
for(;;)
{
statements;
}
就是这样。
虽然使用while循环可以实现同样的目的:
while(true)
{
statements;
}
这不是一个“空”循环。这两个都是无限循环,您必须在循环内部使用break
。
另一方面,
for(initialisation;condition;updation)
{
}
这是一个“空”循环,基本上什么都不做,除了可能更新一些可以在循环本身之前定义的变量。
答案 3 :(得分:1)
等于:
while (true) {
statements;
}
无限循环是一个循环,直到其他东西停止它为止。
答案 4 :(得分:1)
空循环是一个具有空体的循环,例如
for(int i = 0; i < 10; ++i) {}
while(cin) {}
(请注意,这里的第二个例子也恰好是无穷无尽的)
有些情况下这些是有用的,例如当一个函数具有所需的副作用并返回其成功时,应该重复直到不成功,例如读取文件中的最后一行:
std::string getLastLine(std::string filename)
{
std::ifstream in(filename.c_str());
if(!in)
return "";
std::string line;
while(std::getline(in, line)); // empty loop, the operation returns the condition
return line;
}
答案 5 :(得分:1)
for(;;)
{
statements;
}
是无穷循环,因为有冗余值/垃圾值使循环成为真
for(initialisation;condition;updation)
{
body;
}
仅仅是for循环的语法(用于教育目的)