什么((i< = m; i ++)是什么意思?

时间:2018-06-05 22:15:29

标签: c++ c visual-c++

我正在攻读我的考试,我碰到了这个有一行说明的例子:

for(;i<=m;i++)

我不明白的是为什么;前面没有任何东西? 它有什么作用?这是什么意思?

5 个答案:

答案 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时,循环最终会停止。