跳轉到內容

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

.

華夏公益教科書