C++ 编程
外观
for 关键字用作预条件循环的特例,它支持构造函数,以步进表达式的形式重复循环一定次数,该表达式可以被测试并用于设置步长(变化率)通过在每个循环中递增或递减它。
- 语法
for (initialization ; condition; step-expression)
statement(s);
for 结构是一个通用的循环机制,由 4 部分组成
- . 初始化,它包含 0 个或多个用逗号分隔的变量初始化语句
- . 测试条件,它被评估以确定是否继续执行 for 循环
- . 递增,它包含 0 个或多个用逗号分隔的语句,用于递增变量
- . 以及语句列表,它包含 0 个或多个将在每次执行循环时执行的语句。
for 循环等效于下一个 while 循环
initialization
while( condition )
{
statement(s);
step-expression;
}
示例 1
// a unbounded loop structure
for (;;)
{
statement(s);
if( statement(s) )
break;
}
示例 2
// calls doSomethingWith() for 0,1,2,..9
for (int i = 0; i != 10; ++i)
{
doSomethingWith(i);
}
可以改写为
// calls doSomethingWith() for 0,1,2,..9
int i = 0;
while(i != 10)
{
doSomethingWith(i);
++i;
}
for 循环是一个非常通用的结构,可以运行无界循环(示例 1),并且不需要遵循许多更正式语言中同名结构强制执行的严格迭代模型。C++(就像现代 C 一样)允许在 for 循环的初始化部分声明变量(示例 2),并且通常被认为是一种良好的形式,只在可以初始化时声明对象,并在尽可能小的作用域内这样做。本质上,for 循环和 while 循环是等效的。大多数 for 语句也可以改写为 while 语句。
在 C++11 中,添加了一种额外的 for 循环形式。此循环遍历范围内的每个元素(通常是字符串或容器)。
- 语法
for (variable-declaration : range-expression)
statement(s);
示例 2
std::string s = "Hello, world";
for (char c : s)
{
std::cout << c << ' ';
}
将打印
H e l l o , w o r l d
.