for (C# リファレンス)for (C# reference)

for ステートメントでは、指定されたブール式が true と評価される間に、ステートメントまたはステートメント ブロックが実行されます。The for statement executes a statement or a block of statements while a specified boolean expression evaluates to true.

for ステートメント ブロック内の任意の位置で、break ステートメントを使ってループから抜けることができます。または、continue ステートメントを使って、ループ内の次の繰り返しにスキップできます。At any point within the for statement block, you can break out of the loop by using the break statement, or step to the next iteration in the loop by using the continue statement. また、gotoreturnthrow ステートメントのいずれかを使って for ループを終了することもできます。You also can exit a for loop by the goto, return, or throw statements.

for ステートメントの構造Structure of the for statement

for ステートメントには、initializerconditioniterator のセクションが定義されています。The for statement defines initializer, condition, and iterator sections:

for (initializer; condition; iterator)
    body

3 つのセクションはすべて省略可能です。All three sections are optional. ループの本体は、ステートメントまたはステートメントのブロックのいずれかです。The body of the loop is either a statement or a block of statements.

次の例では、for ステートメントと定義されているすべてのセクションが示されています。The following example shows the for statement with all of the sections defined:

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

initializer セクションThe initializer section

initializer セクション内のステートメントは、ループに入る前に 1 回だけ実行されます。The statements in the initializer section are executed only once, before entering the loop. initializer セクションは、次のいずれかです。The initializer section is either of the following:

  • ローカル ループ変数の宣言と初期化。ループの外からアクセスすることはできません。The declaration and initialization of a local loop variable, which can't be accessed from outside the loop.

  • 次に列挙した 0 個以上のステートメント式 (コンマ区切り)。Zero or more statement expressions from the following list, separated by commas:

    • 代入ステートメントassignment statement

    • メソッドの呼び出しinvocation of a method

    • 前置または後置のインクリメント式 (++ii++ など)prefix or postfix increment expression, such as ++i or i++

    • 前置または後置のデクリメント式 (--ii-- など)prefix or postfix decrement expression, such as --i or i--

    • new キーワードを使用したオブジェクト作成creation of an object by using new keyword

    • awaitawait expression

上記の例の initializer セクションは、ローカル ループ変数 i を宣言して初期化します。The initializer section in the example above declares and initializes the local loop variable i:

int i = 0

condition セクションThe condition section

condition セクション (ある場合) は、ブール式にする必要があります。The condition section, if present, must be a boolean expression. その式はループの反復の前に毎回評価されます。That expression is evaluated before every loop iteration. condition セクションが存在しないか、ブール式が true に評価される場合、次のループの反復が実行されます。そうでない場合は、ループが終了します。If the condition section is not present or the boolean expression evaluates to true, the next loop iteration is executed; otherwise, the loop is exited.

上記の例のcondition セクションでは、ローカル ループ変数の値に基づいて、ループが終了するかどうかを決定します。The condition section in the example above determines if the loop terminates based on the value of the local loop variable:

i < 5

iterator セクションThe iterator section

ループ本体の反復処理が終わるたびに実行される処理を iterator セクションで定義します。The iterator section defines what happens after each iteration of the body of the loop. iterator セクションには、次のステートメント式を 0 個以上、コンマで区切って記述します。The iterator section contains zero or more of the following statement expressions, separated by commas:

  • 代入ステートメントassignment statement

  • メソッドの呼び出しinvocation of a method

  • 前置または後置のインクリメント式 (++ii++ など)prefix or postfix increment expression, such as ++i or i++

  • 前置または後置のデクリメント式 (--ii-- など)prefix or postfix decrement expression, such as --i or i--

  • new キーワードを使用したオブジェクト作成creation of an object by using new keyword

  • awaitawait expression

上記の例の iterator セクションでは、ローカルのループ変数をインクリメントします。The iterator section in the example above increments the local loop variable:

i++

使用例Examples

次の例は、for ステートメント セクションのやや特殊な使用例です。initializer セクションで外部ループ変数に値を代入し、initializer セクションと iterator セクションの両方でメソッドを呼び出しています。さらに、iterator セクションで 2 つの変数の値を変更しています。The following example illustrates several less common usages of the for statement sections: assigning a value to an external loop variable in the initializer section, invoking a method in both the initializer and the iterator sections, and changing the values of two variables in the iterator section. [実行] を選択して、コード例を実行します。Select Run to run the example code. その後に、コードを変更し、もう一度実行することができます。After that you can modify the code and run it again.

int i;
int j = 10;
for (i = 0, Console.WriteLine($"Start: i={i}, j={j}"); i < j; i++, j--, Console.WriteLine($"Step: i={i}, j={j}"))
{
    // Body of the loop.
}

次の例では、無限 for ループが定義されます。The following example defines the infinite for loop:

for ( ; ; )
{
    // Body of the loop.
}

C# 言語仕様C# language specification

詳細については、「C# 言語の仕様」を参照してください。For more information, see the C# Language Specification. 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。The language specification is the definitive source for C# syntax and usage.

関連項目See also