for (C# リファレンス)

for のループを使用して、false指定した式がになるまでステートメントまたはステートメントのブロックを繰り返し実行できます。この種類のループが配列の反復処理に何時間を反復処理してループにするか、先立ってがわかっている他のアプリケーションに便利です。

使用例

次の例では、i の値がコンソールに出力され、1でループの各反復処理の間にインクリメントされます。


class ForLoopTest 
{
    static void Main() 
    {
        for (int i = 1; i <= 5; i++)
        {
            Console.WriteLine(i);
        }
    }
}
/*
Output:
1
2
3
4
5
*/

前の例の for のステートメントは次のアクションを実行します。

  1. 最初に、可変 i の初期値はに設定されます。この手順は一度だけに関係なく、数時間をループの繰り返し回数発生します。イベントの外側として初期化するプロセスをループについて考えることができます。

  2. 要件 (i <= 5) を評価するには、i の値は5.と比較されます。

    • i が5以下の場合、条件が trueに評価され、次のアクションが発生します。

      1. ループ本体の Console.WriteLine のステートメントは iの値を表示します。

      2. i の値は1.でインクリメントされます。

      3. ループは、手順2の先頭に条件を再評価するに返されます。

    • i が5より大きい場合、条件はと評価 falseし、ループを終了します。

i の初期値が5よりも大きい場合は、ループの本体が一度実行されないことに注意してください。

for のステートメントで初期化子、要件、および反復子のセクションを定義します。これらのセクションでは、通常、数時間をループが反復処理するかを判定します。

for (initializer; condition; iterator)
    body

セクションには、次の目的に使用されます。

  • 初期化子のセクションでは、最初の条件を設定します。こののステートメントは一度だけループに入る前に、実行をバッチ処理されます。セクションには、次の2種類の選択項目の1つがだけ指定できます。

    • 最初の例として、ローカル ループ変数の宣言と初期化は、示します (int i = 1)。変数はループにローカルで、ループの外部からアクセスできません。

    • コンマで区切られた次の一覧からのゼロ以上のステートメントのexpressons。

      • 割り当て のステートメント

      • メソッドの呼び出し

      • ++i または i++などの インクリメント の式のプレフィックスまたは後に追加します。

      • --i または i--などの デクリメント の式のプレフィックスまたは後に追加します。

      • [new]を使用してオブジェクトの作成

      • [await] の式

  • 要件のセクションでは、ループが終了するか、または再度実行する必要があるかどうかの決定を評価するブール式が含まれます。

  • 反復子のセクションが発生して、ループ本体の各反復後に定義します。反復子のセクションでは、次のステートメントの式のゼロ以上を、コンマで区切って含まれています:

    • 割り当て のステートメント

    • メソッドの呼び出し

    • ++i または i++などの インクリメント の式のプレフィックスまたは後に追加します。

    • --i または i--などの デクリメント の式のプレフィックスまたは後に追加します。

    • [new]を使用してオブジェクトの作成

    • [await] の式

  • ループの本体は、ステートメントで、空のステートメントも、独自に作成する中かっこのゼロ以上のステートメントを囲むことで、ステートメント ブロック構成されます。

    for のループの [break] のキーワードを使用して生成したり、次のイテレーションに [continue] のキーワードを使用してステップ インできます。また Goto返します。、または スローされます。 のステートメントを使用してループを抜けることができます。

このトピックの最初の例は、セクションの次のオプションをする最も一般的な種類の for のループを示します。

  • 初期化子はループの反復カウントを保持するローカル i、ループ変数の宣言と初期化します。

  • 状態チェック既知の最終的な値である5.に対するループ変数の値。

  • 反復子のセクションでは、ループの各反復を集計するには、後置インクリメントのステートメント、i++を使用します。

次の例では、複数のあまり一般的なオプションを示します。: 値を初期化子、および反復子のセクションの両方の Console.WriteLine のメソッド、および反復子のセクションの2種類の変数の値の変更を開始する初期化子のセクションの外部ループ変数に割り当てます。

static void Main()
 {
     int i;
     int j = 10;
     for (i = 0, Console.WriteLine("Start: {0}",i); i < j; i++, j--, Console.WriteLine("i={0}, j={1}", i, j))
     {
         // Body of the loop.
     }
 }
 // Output:
 // Start: 0
 // i=1, j=9
 // i=2, j=8
 // i=3, j=7
 // i=4, j=6
 // i=5, j=5

for のステートメントを定義する式はすべて省略可能です。たとえば、次のステートメントでは、無限ループを作成します。

for (; ; )
{
    // ...
}

C# 言語仕様

詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。

参照

関連項目

C# のキーワード

foreach、in (C# リファレンス)

に対するステートメント (C++)

繰り返しステートメント (C# リファレンス)

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス