English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# for ループ

ここでは、forループの使用方法、forループの構造、ネストされたforループが複数回実行する文やコードブロック、forループの終了方法について学びます。

forキーワードはC#でのループを表します。forループは指定された条件がfalseに返されるまで、文を繰り返し実行します。

文法:

for (initializer; condition; iterator)
{    
   //コードブロック 
}

forループは以下の3つのオプション部分を含みます:分号で区切ります。

Initializer: は変数を初期化し、forループのローカル変数として使用されます。また、ループ外部からアクセスできない場合があります。これは、0個または複数の代入文、メソッド呼び出し、インクリメントまたはデクリメント表現(例えば)もできます。++iまたはi++、およびawait表現を含みます。

Condition:条件は布尔表現であり、trueまたはfalseを返します。表現の計算結果がtrueの場合、ループが再び実行されます;そうでない場合、ループは終了します。

Iterator:イテレータはループ変数の増加または減少を定義します。

以下のforループはコードブロックを実行します10回。

for (int i = 0; i < 10; i++)
{
    Console.WriteLine("iの値: {0}", i);
}

試してみて出力してください:

iの値: 0
iの値: 1
iの値: 2
iの値: 3
iの値: 4
iの値: 5
iの値: 6
iの値: 7
iの値: 8
iの値: 9

の例では、int i = 0は初期化式であり、int 変数iを0で初期化します。第二部分は条件表現i< 10、その条件が返されます がtrueの場合、それがコードブロックを実行します。コードブロックの実行後、それが第三部分のイテレータに移動します。i+ + はインクリメント文であり、ループ変数i の値が増加します1現在、それが条件表現を再びチェックし、falseが返されるまで同じ操作を繰り返します。以下の図はforループの実行手順を示しています。

以下の図はforループの実行手順を示しています。

forループの実行手順

コードブロックに含まれるが、一つの文だけを含む場合、大括号{ }で囲む必要はありません。

 例:forループ

for (int i = 0; i < 10; i++){
  Console.WriteLine("iの値: {0}", i);
}

初期化、条件、イテレータ部分はオプションです。変数を初期化するにはforループの前に、条件やイテレータを定義するにはコードブロック内で行うことができます。

 例:forループC#

int i = 0;
for(;;)
{
    if (i < 10)
    {
      Console.WriteLine("iの値: {0}", i);
      i++;
    } else {
       break;
    }
}
出力:
iの値: 0
iの値: 1
iの値: 2
iの値: 3
iの値: 4
iの値: 5
iの値: 6
iの値: 7
iの値: 8
iの値: 9

 これらの三つの部分はforループではオプションですので、条件やイテレータを定義する際には注意してください。それをしなければ、無限ループとなり、ループは決して終了しません。

for (; ; )
{
    Console.Write(1);
}
出力:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ....

forループの制御変数は、double、decimalなどの数字データ型のいずれでもできます。

for (double d = 1.01D; d < 1.10; d+= 0.01D)
{
    Console.WriteLine("iの値: {0}", d);
}
出力:
iの値: 1.01
iの値: 1.02
iの値: 1.03
iの値: 1.04
iの値: 1.05
iの値: 1.06
iの値: 1.07
iの値: 1.08
iの値: 1.09

forループでのステップ部分は、変数の値を増加または減少させることもできます。

for (int i = 10; i > 0; i--)
{
    Console.WriteLine("iの値: {0}", i);
}
出力:
iの値: 10
iの値: 9
iの値: 8
iの値: 7
iの値: 6
iの値: 5
iの値: 4
iの値: 3
iの値: 2
iの値: 1

forループからの退出

breakキーワードを使用してforループから退出することもできます。

for (int i = 0; i < 10; i++)
{
    if (i == 5 )
        break;
    Console.WriteLine("iの値: {0}", i);
}
出力:
iの値: 0
iの値: 1
iの値: 2
iの値: 3
iの値: 4

複数の式

forループには、カンマで区切られた複数の初期値設定項とイテレータ文を含むこともできます。

for (int i = 0, j = 0; i+j < 5; i++, j++)
{
    Console.WriteLine("iの値: {0}, J: {",1} ", i,j);
}
出力:
iの値: 0, J: 0 
iの値: 1, J: 1 
iの値: 2, J: 2

forループには初期値設定項とイテレータとしての文を含むこともできます。

int i = 0, j = 5;
for (Console.WriteLine($"初期化: i={i}, j={j}")); 
    i++ < j--; 
    Console.WriteLine($"イテレータ: i={i}, j={j}"))
    {
    }

出力:

初期化子:i = 0,j = 5
イテレータ:i = 1、j = 4  
イテレータ:i = 2、j = 3  
イテレータ:i = 3、j = 2

ネストループ

C#は別のforループ内でforループを許可しています。

for (int i = 0; i < 2; i++)
{
    for(int j =i; j < 4; j++){
       Console.WriteLine("iの値: {0}, J: {1} ", i,j);
    }
        
}
出力:
iの値:0,J:0 
iの値:0,J:1  
iの値:0,J:2  
iの値:0,J:3  
iの値:1、J:1  
iの値:1 、J:2  
iの値:1、J:3