我正在攻读我的考试,我碰到了这个有一行说明的例子:
for(;i<=m;i++)
我不明白的是为什么;
前面没有任何东西?
它有什么作用?这是什么意思?
答案 0 :(得分:3)
for
语句具有以下语法:
for (declaration; condition; post-condition)
声明仅发生一次。在每个循环开始时检查条件,并确定循环是否继续,后期条件发生在循环结束。
可以省略任何和所有这些陈述。
你的只是一个for
循环,不需要声明,也许是因为已经声明了某些内容,如下所示:
int i = 0;
for (;i<=m;++i)
如果你想让一个循环无限期地运行,你可以省略第二个语句:
for (int i = 0; ;++i)
在这方面,无限循环通常写为
for (;;)
您可能希望省略后置条件,可能是因为您正在使用迭代器并在循环期间更改它
for (auto it = std::begin(v); it != std::end(v);)
答案 1 :(得分:2)
它做了什么,这是什么意思?
这意味着for循环的初始化部分为空,即在循环范围内没有初始化循环变量。 这种结构在你想要在循环结束后访问循环变量的情况下最常见,例如在
int i = 7;
for(; i < 100; ++i) {
if(isPrime(i)) break;
}
assert(i == 11); // can access i now
答案 2 :(得分:1)
我不明白的是为什么会有“;”没有任何东西在它面前。它做了什么,它意味着什么。
这是一个无效的声明。
您可以随意拥有空语句。在循环结构中看到它们是很常见的。
答案 3 :(得分:1)
i变量必须在其他地方初始化..所以它从那里选择值,循环从i的值迭代。
答案 4 :(得分:1)
这意味着此声明的一部分在之前的某处声明。
i=0
for(;i<=m;i++)
这个循环说,每当我小于m时,我就会去做代码块中的任何事情。每当我达到m值,我就会停下来。在循环的每次迭代之后,它将i递增1(i ++),这样当循环满足i <= m时,循环最终会停止。