C#でfor文を使う方法!繰り返し(ループ)処理をする!

C# C#

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を設定しています。

条件には変数ifruits配列の要素数未満のときに、繰り返すようにしました。
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文を使うことで、繰り返し処理(ループ)することができた。
・for文には、初期値・繰り返し条件・ステップ値を渡して、ループ処理を行なった。
・配列の要素数で回すときには、Lengthプロパティで要素数にアクセスできた。
・リストの要素数で回すときには、Countプロパティで要素数にアクセスできた。
・break文で繰り返し処理を抜けることができた。
・continue文で繰り返し処理の途中でスキップすることができた。

コメント

タイトルとURLをコピーしました