C#でfor文を使う方法について書いています。
最初にfor文についての解説をしていて、その後にfor文についてのサンプルコードをいくつか載せて解説しています。
記事内のサンプルコードについては、.Netのバージョン6(C#のバージョン10)で確認しました。
for文とは?
C#のfor文は指定した条件があっている(true
になる)間、繰り返し(ループ)処理をすることができます。
例えば、下記のようにfor文を使うことができます。
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"hello:{i}");
}
このようにfor文を書くことで、処理を繰り返します。
for文の丸括弧「()
」の中に書いている内容ですが、最初に初期値を書いています。
繰り返し処理をするために、変数i
を用意して、初期値として0を設定しています。
この初期化は繰り返し処理を始める最初の1回だけ行われます。
次に繰り返し処理をするための条件を書いています。
今回は「i < 5
」と書いているので、変数i
が5未満の間処理が繰り返されます。
条件にあっている(true
)間はループ処理をして、条件にあわなくなったら(false
)ループ処理から抜けます。
最後に「i++
」としていますが、これはステップ値になります。
変数i
がループが終わるたびに、ひとつ足されます。
そのため、今回の場合は変数i
が0からひとつずつ足されて、5になると条件に合わなくなるためループが終わります。
ループ処理の中では、文字列の「hello:
」と一緒に変数i
の値を出力しているだけです。
プログラムを実行すると、下記のように出力されました。
hello:0
hello:1
hello:2
hello:3
hello:4
変数i
が0から4までの間、ループされたことが確認できました。
for文の書き方まとめ
for文の書き方を日本語でまとめると、下記のようになります。
for (初期値; 繰り返し条件; ステップ値)
初期値に変数を用意して、繰り返し条件がtrue
になる間、ループを繰り返せました。
ループ処理の最後にステップ値に定義した内容で、初期値の変数をカウントアップできました。
for文で配列を使う
for文で配列の要素数がある間ループすることもできます。
例えば、下記のようにして、配列の要素数分ループ処理できます。
string[] fruits = new string[5] { "orange", "apple", "grape", "banana", "lemon" };
for (int i = 0; i < fruits.Length; i++)
{
string fruit = fruits[i];
Console.WriteLine(fruit);
}
最初にfruits
変数に対して、5つの文字列で配列を作成しました。
次にfor文でループ処理を書いています。
初期値は変数i
で0を設定しています。
条件には変数i
がfruits
配列の要素数未満のときに、繰り返すようにしました。
「fruits.Length
」で配列の要素数が取得できます。
そのため、条件としては「0 < 5
」となり、変数i
の値が0から4までの間に繰り返します。
ステップ値としては、変数i
の値はひとつずつ足されます。
ループ処理の中ですが、最初にfruits
配列の変数i
の要素を取得しています。
変数i
は、最初は「0」なので、「orange
」が取得されます。
その次にループが回ると変数i
は「1」になるので「apple
」が取れます。
このようにループが回るたびに、ひとつずつ要素を取得して、fruit
変数に代入しています。
そのあとにfruit
変数を出力しました。
プログラムを実行すると、下記のように出力されました。
orange
apple
grape
banana
lemon
要素数がある分、処理が繰り返されました。
for文でリストを使う
for文でリストの要素数がある間ループすることもできます。
下記のようにして、リストの要素数がある間ループ処理ができます。
List<string> fruits = new List<string> { "grape", "melon", "apple", "cherry" };
for (int i = 0; i < fruits.Count; i++)
{
string fruit = fruits[i];
Console.WriteLine(fruit);
}
最初にfruits
変数に対して、4つの文字列でリストを作っています。
次の処理で、for文を書いています。
配列のときと似たような感じですが、こちらは条件の個所が違います。
初期値は変数i
を0で代入しました。
次の条件に「i < fruits.Count
」として、変数i
が「fruits.Count
」の間ループします。
「fruits.Count
」とすることで、リストの要素数が取得できます。
そのため、変数i
が0から4までの間ループします。
for文の中の処理です。
最初にfruits
リストの変数i
番目を取得しています。
こうすることで、配列と同じようにリストの先頭からひとつずつ取得することができます。
プログラムを実行すると、下記のようにリストの要素が全て出力されました。
grape
melon
apple
cherry
for文を途中で抜ける(break)
for文の途中にbreak文を書くことで、for文を指定の条件のときに抜けることができます。
例えば、下記のように使うことができます。
for (int i = 0; i < 10; i++)
{
if (i == 3) {
break;
}
Console.WriteLine(i);
}
for文で「0」から「9」までの間、10回ループ処理をしています。
ループ処理の中で、変数i
が「3」だったらbreak
するようにしました。
これで、変数i
が「3」になったときにbreak
してループを抜けるようになります。
最初は「0」から始まって、「3」までカウントアップしてループが終わります。
プログラムを実行すると、下記のようになります。
0
1
2
ループ処理で変数i
が「2」まで出力されて、「3」のときに抜けたことが確認できました。
for文でループをスキップする(continue)
for文の途中にcontinue文を書くことで、指定の条件のときに処理をスキップすることができます。
例えば、下記のようにして、スキップすることができます。
for (int i = 0; i < 10; i++)
{
if ((i % 2) == 0) {
continue;
}
Console.WriteLine(i);
}
こちらもfor文で「0」から「9」までの間、10回ループ処理をしています。
ループ処理の中で、変数i
を2で割った余りが「0」のときにcontinue
するようにしています。
つまり、変数i
が偶数だったときには処理がスキップされて、変数i
が出力されません。
プログラムを実行すると、下記のように奇数のみが出力されました。
1
3
5
7
9
偶数のときには、スキップされていることが確認できました。
for文を使う方法のまとめ
今回はC#でfor文を使う方法を書きました。
記事の内容をまとめると、下記のようになります。
・for文には、初期値・繰り返し条件・ステップ値を渡して、ループ処理を行なった。
・配列の要素数で回すときには、Lengthプロパティで要素数にアクセスできた。
・リストの要素数で回すときには、Countプロパティで要素数にアクセスできた。
・break文で繰り返し処理を抜けることができた。
・continue文で繰り返し処理の途中でスキップすることができた。
コメント