ヘッダー
C# サンプル集
 

for による回数指定の繰り返し

2022/9/25

→ Visual Basic のサンプルに切り替える → Python のサンプルに切り替える

 

5回繰り返す

for (int i = 0; i < 5; i++)
{
    System.Diagnostics.Debug.WriteLine("こんにちは!");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!

 

 

カウンター変数の型を long にする

for (long i = 0; i < 5; i++)
{
    System.Diagnostics.Debug.WriteLine("こんにちは!");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!

 

 

繰り返し回数を取得する

for (int i = 0; i < 5; i++)
{
    System.Diagnostics.Debug.WriteLine($"現在{i}周目です。");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

現在0周目です。
現在1周目です。
現在2周目です。
現在3周目です。
現在4周目です。

 

 

途中でループから抜け出す (break)

この例は本来10回繰り返す指定になっていますが、if 文で条件判断して3周目で抜けます。

for (int i = 0; i < 11; i++)
{
    System.Diagnostics.Debug.WriteLine($"カウンター={i}");

    if (i == 2)
    {
        break;
    }
}

System.Diagnostics.Debug.WriteLine("終了");

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

カウンター=0
カウンター=1
カウンター=2
終了

 

 

ループがすべて完了したか確認する (たとえば、breakしていないかどうか)

この例では 変数 i が 9999 の場合 break します。ループの処理がすべて終わった後に break して終わったのか、break しないで終わったのかメッセージを出力します。 このまま実行すると i は 9999 にならないので break は発生しないで終了します。

bool isBreak = false;

for (int i = 0; i < 11; i++)
{
    System.Diagnostics.Debug.WriteLine($"カウンター={i}");

    if (i == 9999) //←ここを i == 2 などに変えると、最後のメッセージが出力されなくなります。
    {
        isBreak = true;
        break;
    }
}

if (!isBreak)
{
    System.Diagnostics.Debug.WriteLine("breakしないでループを終了しました。"); //←これが出力されます。
}

メモ:ループが完了したかを検出する特別な機能はありません。

 

 

その周を中断し、次の周を開始する (continue)

if 文で条件判断して2周目と3周目であれば処理を中断して次の周を開始します。

for (int i = 0; i < 5; i++)
{
    System.Diagnostics.Debug.WriteLine($"カウンター {i} 開始");

    if ( i == 1 || i == 2)
    {
        continue;
    }

    System.Diagnostics.Debug.WriteLine($"カウンター {i} 終了");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

カウンター 0 開始
カウンター 0 終了
カウンター 1 開始
カウンター 2 開始
カウンター 3 開始
カウンター 3 終了
カウンター 4 開始
カウンター 4 終了

 

 

次の周は実行しない。次の次から実行する。

次の例では、i = 2 の周は実行されません。その前の周(i = 1の周)で i を +1 しているからです。

for (int i = 0; i < 5; i++)
{
    System.Diagnostics.Debug.WriteLine($"カウンター={i}");

    if (i == 1)
    {
        i += 1;
    }
}

Debug.WriteLineが表示される場所

メモ:この例のようにカウンター変数に直接代入することで前にも後ろにも任意の周に移動できます。

実行すると下記の通り出力されます。

カウンター=0
カウンター=1
カウンター=3
カウンター=4

 

 

2重ループで九九の表を作成する

for (int x = 1; x <= 9; x++)
{
    for (int y = 1; y <= 9; y++)
    {
        System.Diagnostics.Debug.Write($"\t{x * y}");
    }
    System.Diagnostics.Debug.WriteLine("");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

 

 

カウントを 5 から開始する

for (int i = 5; i < 8; i++)
{
    System.Diagnostics.Debug.WriteLine($"カウンター={i}");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

カウンター=5
カウンター=6
カウンター=7

 

 

2ずつカウントアップする

for (int i = 0; i < 9; i+=2)
{
    System.Diagnostics.Debug.WriteLine($"カウンター={i}");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

カウンター=0
カウンター=2
カウンター=4
カウンター=6
カウンター=8

 

 

カウントダウンする

for (int i = 100; i > 95 ; i--)
{
    System.Diagnostics.Debug.WriteLine($"カウンター={i}");
}

Debug.WriteLineが表示される場所

カウンター=100
カウンター=99
カウンター=98
カウンター=97
カウンター=96

 

 

列挙型を繰り返す

この例では DayOfWeek 列挙型 のメンバーを列挙します。

for (var i = DayOfWeek.Sunday; i <= DayOfWeek.Saturday; i++)
{
    System.Diagnostics.Debug.WriteLine($"{(int)i}:{i}");
}

Debug.WriteLineが表示される場所

実行すると下記の通り出力されます。

0:Sunday
1:Monday
2:Tuesday
3:Wednesday
4:Thursday
5:Friday
6:Saturday