C++ for(;i<;=m;i+;+;)是什么意思?
我正在准备考试,我碰到了一个例子,上面写着:C++ for(;i<;=m;i+;+;)是什么意思?,c++,c,visual-c++,C++,C,Visual C++,我正在准备考试,我碰到了一个例子,上面写着: for(;i<=m;i++) (;i)的 我不明白的是为什么有一个“;”在它前面没有任何东西。它做什么,它意味着什么 这是一个没有任何作用的有效陈述 您可以在任意位置使用空语句。在循环构造中很常见这些语句。for语句的语法如下: for (declaration; condition; post-condition) 声明只发生一次。在每个循环开始时检查条件并确定循环是否继续,post条件发生在循环结束时 所有这些陈述都可以省略 您的循环只
for(;i<=m;i++)
(;i)的
我不明白的是为什么有一个“;”在它前面没有任何东西。它做什么,它意味着什么
这是一个没有任何作用的有效陈述
您可以在任意位置使用空语句。在循环构造中很常见这些语句。for
语句的语法如下:
for (declaration; condition; post-condition)
声明只发生一次。在每个循环开始时检查条件并确定循环是否继续,post条件发生在循环结束时
所有这些陈述都可以省略
您的循环只是一个不需要声明的for
循环,可能是因为已经声明了某些内容,例如:
int i = 0;
for (;i<=m;++i)
在这方面,无限循环通常写为
for (;;)
您可能希望省略post条件,可能是因为您正在使用迭代器,并在循环过程中对其进行更改
for (auto it = std::begin(v); it != std::end(v);)
i变量必须在其他地方初始化。因此它从那里拾取值,循环从i的值迭代
它做什么,它意味着什么
这意味着for循环的初始化部分为空,即在循环范围内没有初始化任何循环变量。
这种构造在您希望在循环离开后访问循环变量的情况下最为常见,例如在
int i = 7;
for(; i < 100; ++i) {
if(isPrime(i)) break;
}
assert(i == 11); // can access i now
inti=7;
对于(;i<100;++i){
如果(i)中断;
}
断言(i==11);//现在可以访问i了吗
这意味着此语句的一部分在之前的某个地方声明
i=0
for(;i<=m;i++)
i=0
对于(;iso如果它什么也不做为什么会在那里?@BonQuiQuifor
必须有3个部分,由2个分号分隔。所有3个部分都是可选的,但分号必须保留在那里。如果它不在那里,不是更容易吗?@BonQuiQui那么你如何确定3个部分中的哪一个被省略了?是的,我现在知道了,非常感谢你,这意味着for
语句的第一部分已经在代码中的某个地方设置好了。它在上下文中会更有意义-即提供正确的代码。您需要了解基本知识,请参阅for循环语法:就是这样-它什么都不做。分号是用来告诉编译器接下来要做的是退出循环的测试(或者不是)。大概,i
是事先设置好的。请注意,您可以在该空间中放置任何想要的内容,包括与for循环的操作完全无关的内容。
i=0
for(;i<=m;i++)