【C#入門】foreachの使い方を現役エンジニアが解説


C#を学び始めたけど、foreachの使い方が分からない…

教えてください!



C#を学び始めたけど、、、

foreachの使い方が分からない

このような疑問をお持ちではありませんか?

foreach』はC#特有の文法です。そのため、初めてC#を学ぶ方にはとっつきにくいかもしれません。

そこで、『foreach』の使い方を現役エンジニアである私が分かりやすく解説します。


foreach文とは

foreach文とは、for文と同様に繰り返しループ処理を行う構文です。

配列などの要素を取り出すときに使用し、for文と比較してもコードが簡潔になります。コードが簡潔になるため、読みやすくなり、エラーを減らすことができるというメリットがあります。

foreach文の使い方

foreach文は以下のようにコードを記載して使用します。

foreach(型名 変数名 in コレクションまたは配列) {
    処理文
}

以下にサンプルコードを記載します。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            //変数srcを宣言し、配列を代入
            var src = new [] { 10, 20, 30, 40, 50 };

            //変数iに配列srcに要素を順番に代入
            foreach (var i in src)
            {
                //変数iを出力
                Console.WriteLine("{0}", i);
            }
        }
    }
}

サンプルコードを実行した際の出力結果は以下のようになります。

10
20
30
40
50

ここからは、サンプルコードを解説していきます。

10行目で変数src配列(要素数:5)を宣言し、代入します。

13行目で、変数i(型名:var)に配列srcの要素をを1つずつ順番に代入しています。

16行目で変数iを出力すると、配列srcの要素を順番に記述されるようになります。

foreach文とbreak文の使い方

break文とは、ループ処理を途中で抜けることが出来る処理です。

言葉では分かりにくいので、実際にコードを見ていきましょう!

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            //変数srcを宣言し、配列を代入
            var src = new [] { 10, 20, 30, 40, 50 };

            //変数iに配列srcに要素を順番に代入
            foreach (var i in src)
            {
                //iの値が40のとき
                if(i == 40)
                {
                    //ループ処理を抜ける
                    break;
                }
                //iの値が40ではないとき
                else
                {
                    //変数iを出力
                    Console.WriteLine("{0}", i);
                }
            }
        }
    }
}

上記のコードを実行すると、以下のような出力結果が得られます。

10
20
30

16行目で、iの値が40かどうかを判定します。

iが40だった場合、19行目のbreak文が実行されforeach文のループ処理を抜けます。

16行目で、偽と判定された場合22行目に進みます。

つまり、iが40ではないときは、25行目でiの値が出力されます。

そのため、サンプルコードを実行すると、上記のような出力結果が得られます。

foreach文とcontinue文の使い方

continue文とは、ループ処理を次の要素にスキップする処理です。

言葉では分かりにくいので、実際にコードを見ていきましょう!

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            //変数srcを宣言し、配列を代入
            var src = new [] { 10, 20, 30, 40, 50 };

            //変数iに配列srcに要素を順番に代入
            foreach (var i in src)
            {
                //iの値が40のとき
                if(i == 40)
                {
                    //ループ処理を次の要素にスキップ
                    continue;
                }
                //iの値が40ではないとき
                else
                {
                    //変数iを出力
                    Console.WriteLine("{0}", i);
                }
            }
        }
    }
}

上記のコードを実行すると、以下のような出力結果が得られます。

10
20
30
50

16行目で、iの値が40かどうかを判定します。

iが40だった場合、19行目のcontinue文が実行され、13行目に進みます。

16行目で、偽と判定された場合22行目に進みます。

つまり、iが40ではないときは、25行目でiの値が出力されます。

そのため、サンプルコードを実行すると、上記のような出力結果が得られます。

【まとめ】foreach文は使えると便利

foreach文の使い方は理解できましたか?

まとめ

  • foreach
  • foreach × break
  • foreach × continue

この記事では、C#のforeachの使い方について紹介しました。

最後になりますが、私の体験談やみなさんの疑問に対して、できる限り分かりやすく記載したつもりです。ですが、もしここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。

最後までお読みいただきありがとうございました。





人気記事
人気記事