跳转到内容

C++ 编程

来自维基教科书,为开放世界提供开放书籍

for 关键字用作预条件循环的特例,它支持构造函数,以步进表达式的形式重复循环一定次数,该表达式可以被测试并用于设置步长(变化率)通过在每个循环中递增或递减它。

语法
for (initialization ; condition; step-expression)
  statement(s);

for 结构是一个通用的循环机制,由 4 部分组成

  1. . 初始化,它包含 0 个或多个用逗号分隔的变量初始化语句
  2. . 测试条件,它被评估以确定是否继续执行 for 循环
  3. . 递增,它包含 0 个或多个用逗号分隔的语句,用于递增变量
  4. . 以及语句列表,它包含 0 个或多个将在每次执行循环时执行的语句。

注意
在循环初始化(或主体)中声明和初始化的变量仅在循环本身的作用域内有效。

for 循环等效于下一个 while 循环

 initialization
 while( condition )
 {
   statement(s);
   step-expression;
 }


注意

循环的每个步骤(初始化、条件和步进表达式)都可以包含多个命令,用,(逗号运算符)分隔。初始化条件步进表达式都是可选参数。在 C++ 中,逗号很少用作运算符。它主要用作分隔符(即。int x, y; ).

示例 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

.

华夏公益教科书