English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ここでは、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
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