C#

[C#] 繰り返し処理(for, while, foreach)について

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。

今回はc#で繰り返し処理について一緒にみていきましょう。

さまざまな処理をするプログラミングで頻繁に使う繰り返し処理ですが、実はループの回し方がいくつかありますので、順番に解説しようと思います。

繰り返し処理とは?

まずは繰り返し処理とはなんなのか。

このページに来ているということは、もう既に繰り返し処理については知っている方が多いと思いますが簡単に解説します。

プログラムを組んでいくと同じ処理を複数回行いたい場面が出てきます。
その時に、似たような処理を何度も書くと言うのは実に煩雑で無駄が多くなります。

https://itthestudy.com/c-%e6%9d%a1%e4%bb%b6%e3%81%ab%e3%82%88%e3%81%a3%e3%81%a6%e5%87%a6%e7%90%86%e3%82%92%e5%a4%89%e3%81%88%e3%81%a6%e3%81%bf%e3%82%8bif-else/

そこで、同じような処理はひとつにまとめてその処理を何度もループさせて実行する。事が繰り返し処理になります。

繰り返し処理の種類

実は繰り返し処理でも、ループの回し方によっていくつか方法があります。

  • 回数を指定してループする
  • リストや配列などの要素分だけループする
  • ある条件を満たしている間ループする

以上の3つがあります。

この3つを順番に見ていきましょう。

"for" 回数を指定してループする方法

回数を指定してループを回す時には、「for」文というものを使います。

まずはサンプルコードを見てください。

for (/* 初期化式 */; /* 条件式 */; /* 後始末の式 */)
{
    /* 条件式が成立している間は実行される処理 */
}

基本的にはこんな形で構成されます。

for文は、ループを開始する前に実行される「初期化式」というものと,繰り返しの条件を指定する「条件式」、そして繰り返し部分の最後に実行され、その次の繰り返しをするための準備をする「後始末の式」で構成されるものを、まとめて指示する文です。

"foreach" リストや配列などの要素分だけループする

Listや配列などいくつかの値が格納された変数をその中身の要素の数だけループする方法があります。

// 複数の値が格納されているList
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
foreach (var item in list)
{
    // 処理
    // itemにはlistの中の値が順番に格納される
}

書き方としてはこのようになります。

便利なのが、"for"文と違い数のカウントをしなくて良いところですね。

foreachの引数"item in list"の部分で"item"という変数に"list"の要素がループするたびに順番に格納されます。

上記の例だと、ループの1周目は"list"変数の最初の値である'1'が入っており、ループ回数を重ねるごとに"list"変数内の要素を順番に取り出します。

"while" ある条件を満たしている間ループする

最後に"while"文についてみていきます。

このループ処理の仕方はシンプルで、while関数の引数に条件を記述してその条件が"true"の時、つまり条件を満たしている間はループを続ける。というものになります。

while (/* 条件式 */)
{
    /* 条件式が成立している間実行される処理 */
}

こうなります。

この「条件式」の部分は例えば

  • while(true)とすれば、永遠にループは回り続けます(trueをしてすると条件は常にtrueのため)
  • while(count<5)とすれば、変数"count"が5よりも小さい間はループが回り続けます

このように数値であってもboolであっても条件にすることは可能で、その条件がtrue(成立している)間はループが回ります。

ループの途中だけどループから抜けたいとき

先ほど紹介したループの方法ですが、ループをしている途中にそのループを抜けたい場面が訪れます。

そんな時は"break"を使ってください。

"break"とは?

この"break"とは、ループの途中で宣言することでそのループをすぐに抜け出すことができます。

例文を紹介します。

// whileで無限ループする
while (true)
{
    if (count == 8)
    {
        // ループを抜ける
        break;
    }
}

このように無限ループ中にif文などで、「条件次第ではループを抜ける」という処理を入れることができます。

※ "if"文についてはこの記事を参考にしてみてください。

[C#] 条件によって処理を変えてみる(if, else)

これができると、例えば何かの「処理中にユーザーが「キャンセル」した場合には中断する。」というような実装ができます。

まとめ

今回はC#でループ処理をする方法や、そのやり方をご紹介しました。

この記事で覚えてほしいのは、

  • そもそも繰り返し処理(ループ)とは?
  • ループ処理をする種類と方法
  • ループの抜け出し方

この3つはおぼえておいてください!

今回記事の中に出てきた" List "や" if "について知りたい方は、下の記事を参考にしてみてください。

[C#] Listに要素を追加/挿入するには?

https://itthestudy.com/c-%e6%9d%a1%e4%bb%b6%e3%81%ab%e3%82%88%e3%81%a3%e3%81%a6%e5%87%a6%e7%90%86%e3%82%92%e5%a4%89%e3%81%88%e3%81%a6%e3%81%bf%e3%82%8bif-else/

[temp id=2]

Copyright© FUNA BLOG , 2020 All Rights Reserved.