0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プログラム初心者のためのC#入門 #5 ループ処理

Last updated at Posted at 2019-04-14

#5 ループ処理

ループ処理は同じような処理を繰り返して実行する際に用いられます.
foreach文はコレクションというものを知らなければ理解しづらいと思うので,次回の配列でももう一回説明します.

for文

for(初期化式; 条件式; 更新式)
{
    ※ 繰り返したい処理
}

初期化式のところには初めに一度だけ実行する式で,大抵は繰り返し変数という変数を定義・初期化するために用いられます.条件式は※の処理を実行する前に毎回判定され,条件式がtrueの間※の処理が繰り返されます.更新式は※の処理の後に毎回実行される処理です.
次に具体例を見てみましょう.

LoopSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LoopSample
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(i + ". Hello, world!");
            }
        }
    }
}
出力結果
0. Hello, world!
1. Hello, world!
2. Hello, world!
3. Hello, world!
4. Hello, world!

##while文

while (条件式)
{
    ※ 繰り返したい処理
}

while文は条件式がtrueの間※の処理を繰り返すものです.for文とは違い,初期化式をwhile文の前に,更新式をwhile文の中に書く必要があります.

LoopSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LoopSample
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            while (i < 5)
            {
                Console.WriteLine(i + ". Hello, world!");
                i++;
            }
        }
    }
}
出力結果
0. Hello, world!
1. Hello, world!
2. Hello, world!
3. Hello, world!
4. Hello, world!

##do-while文

do
{
    ※ 繰り返したい処理
} while (条件式);

for文,while文は初めから条件式がfalseなら1度も※の処理を実行しませんが,do-while文は初めから条件式がfalseでも1度は※の処理を実行してくれるというものです.

LoopSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LoopSample
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 5;
            do
            {
                Console.WriteLine(i + ". Hello, world!");
                i++;
            } while (i < 5);
        }
    }
}
出力結果
5. Hello, world!

##foreach文

foreach (型 変数名 in コレクション)
{
    ※ 繰り返したい処理
}

foreach文は,いくつものデータをまとめて扱うコレクションを用いる際に非常に有用なループ処理です.コレクションの要素を順に変数に代入して※の処理で使えるようにしてくれるというものです.今はコレクションというものが想像しにくいと思うので,次の配列の回でもっと詳しく解説します.

LoopSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LoopSample
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (int i in Enumerable.Range(0, 5))
            {
                Console.WriteLine(i + ". Hello, world!");
            }
        }
    }
}
出力結果
0. Hello, world!
1. Hello, world!
2. Hello, world!
3. Hello, world!
4. Hello, world!

##break文
break文は一番内側のループ処理を強制的に抜ける文です.

for (int i = 0; true; i++)
{
    if (i == 5) break;
    Console.WriteLine(i + ". Hello, world!");
}
出力結果
0. Hello, world!
1. Hello, world!
2. Hello, world!
3. Hello, world!
4. Hello, world!

このfor文は条件式にtrueが入っているので,ずっとHello, world!と出力し続ける無限ループのコードになってしまいます.しかし,if文によってもしi5のときはbreak文を実行するようになっているので,6回目のHello, world!は出力されずに処理が終わります.

##continue文
continue文はループ処理のcontinue文以降の処理をスキップするものです.

for (int i = 0; i < 5; i++)
{
    if (i == 2) continue;
    Console.WriteLine(i + ". Hello, world!");
}
出力結果
0. Hello, world!
1. Hello, world!
3. Hello, world!
4. Hello, world!

continue文がなければ,このfor文は5回だけHello, world!と出力されるものになります.しかし,またしてもif文によってもしi2のときはcontinue文を実行するようになっているので,3回目のHello, world!は出力されずに処理が中断されますが,4回目の処理から再開されます.

次回は配列について説明します.

##練習問題
100から1までカウントダウンして画面に出力するコードを書いてください.ただし,6の倍数はカウントせずに飛ばしてください.

解答例
`i`を100で初期化したりデクリメントしたりしてfor文を回していくパターンです.
LoopSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LoopSample
{
    class Program
    {
        static void Main(string[] args)
        {
            for(int i = 100; i > 0; i--)
            {
                if (i % 6 == 0) continue;
                Console.WriteLine(i);
            }
        }
    }
}
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?