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

Bon*_*Qui 0 c c++ visual-c++

我正在为我的考试而学习,我遇到了这个例子,它有一行说:

for(;i<=m;i++)
Run Code Online (Sandbox Code Playgroud)

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

Tas*_*Tas 7

一个for语句的语法如下:

for (declaration; condition; post-condition)
Run Code Online (Sandbox Code Playgroud)

声明只发生一次。在每个循环开始时检查条件并确定循环是否继续进行,后置条件发生在循环结束时。

任何和所有这些语句都可以省略。

你的只是一个for不需要声明的循环,也许是因为已经声明了一些东西,如下所示:

int i = 0;
for (;i<=m;++i)
Run Code Online (Sandbox Code Playgroud)

如果您希望循环无限期运行,则可以省略第二条语句:

for (int i = 0; ;++i)
Run Code Online (Sandbox Code Playgroud)

在这方面,无限循环通常写为

for (;;)
Run Code Online (Sandbox Code Playgroud)

您可能希望省略后置条件,也许是因为您正在使用迭代器并在循环期间更改它

for (auto it = std::begin(v); it != std::end(v);)
Run Code Online (Sandbox Code Playgroud)