C++ for ループ

C++ 循环C++ ループ

forループを使用すると、特定の回数だけ実行される繰り返し制御構造を記述できます。

構文

C++ ではforループの構文:

for ( init; condition; increment )
{
   statement(s);
}

以下は for ループの制御フローです:

  1. init最初に実行され、一度だけ実行されます。このステップでは、任意のループ制御変数を宣言および初期化できます。ここに文を記述しなくてもかまいません。ただしセミコロンは必要です。
  2. 次に、条件が評価されます。condition真の場合、ループ本体を実行します。偽の場合、ループ本体は実行されず、制御フローは for ループの直後の文にジャンプします。
  3. for ループ本体を実行した後、制御フローは上記のincrement文に戻ります。この文ではループ制御変数を更新できます。この文は空にできます。ただし条件の後にセミコロンが必要です。
  4. 条件が再度評価されます。真であればループが実行され、このプロセスは繰り返されます(ループ本体、ステップ値の更新、条件の再評価)。条件が偽になると、for ループは終了します。

フローチャート

C++ 中的 for 循环

例

例

#include <iostream> using namespace std; int main () { // for ループを実行 for( int a = 10; a < 20; a = a + 1 ) { cout << "a の値:" << a << endl; } return 0; }

上記のコードがコンパイルおよび実行されると、次の結果が生成されます:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

範囲ベースのforループ (C++11)

for 文では単純な範囲反復が可能です:

int my_array[5] = {1, 2, 3, 4, 5}; // 各配列要素に 2 を掛ける for (int &x : my_array) { x *= 2; cout << x << endl; } // auto 型も C++11 の新標準の一部であり、変数の型を自動的に取得するために使用します for (auto &x : my_array) { x *= 2; cout << x << endl; }

上記の for 文の最初の部分は、範囲反復に使用する変数を定義します。通常の for ループで宣言される変数と同様に、そのスコープはループの範囲内に限定されます。そして「:」の後の2番目のブロックは、反復される範囲を表します。

例

#include<iostream> #include<string> #include<cctype> using namespace std; int main() { string str("some string"); // range for 文 for(auto &c : str) { c = toupper(c); } cout << str << endl; return 0; }

上記のプログラムは range for 文を使用して文字列を走査し、すべての文字を大文字に変換して、次の結果を出力します:

SOME STRING

C++ 循环C++ ループ

その他の拡張