C# for文のサンプル(break/continue)

C#のfor文のサンプルです。処理を繰り返す時に使用します。

目次

for文 for文とは / for文のサンプル / for文で配列の値を取得
break ループを抜ける(break) / 2重ループでbreakを使用
continue ループの先頭に戻る(continue) / 2重ループでcontinueを使用
foreach文 foreach文で配列の値を取得

for文とは

for(1.値を初期化 ; 2.条件 ; 3.値を更新){
    実行される処理
}
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
  • 初期化は、最初に1回だけ実行されます。
  • 使用する変数をカウンター変数またはループ変数といいます。
    →変数名はiやjがよく使用されます。
  • 条件がtrueの間、処理を繰り返します。
  • 条件がfalseの場合、ループ処理を終了します。
  • 「3.値を更新」でカウンター変数/ループ変数の値が変わります。
  • 以下は、Microsoftのfor (C# リファレンス)のリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/for

for文のサンプル

using System;
class Test1
{
	static void Main()
	{
		for (var i = 0; i < 3; i++)
		{
			Console.WriteLine(i); // 0 1 2が出力される
		}
	}
}

6行目は、初期化式(var i = 0)によりiは0から始まります。iはカウンター変数と呼ばれます。
増減式(i++)によりiの値は、1ずつ増えていきます。
条件式(i <3)がtrueの間は処理を繰り返し、iが3になるとfalseになるので終了します。

for文で配列の値を取得

using System;
class Test1
{
	static void Main()
	{
		var arr1 = new[] { "赤", "黄", "青" }; // 配列

		for (var i = 0; i < arr1.Length; i++)
		{
			Console.WriteLine(arr1[i]); // 赤 黄 青が出力される
		}
	}
}

8行目のLengthは、配列の長さを返します。
10行目は、変数と添字で配列の値を表示しています。配列の添字は0から始まります。

ループを抜ける(break)

using System;
class Test1
{
    static void Main()
    {
        for (var i = 0; i < 3; i++)
        {
                if (i == 1)
                {
                    break;
                }
                Console.WriteLine("i =" + i); //i=0が出力される
        }
    }
}

10行目のbreakでfor文を抜けます。
12行目は、i=0が出力されます。

2重ループでbreakを使用

内側のfor文を抜けます。

using System;
class Test1
{
    static void Main()
    {
        for (var i = 0; i < 2; i++)
        {
            for (var j = 0; j < 2; j++)
            {
                if (j == 0)
                {
                    break;
                }
                Console.WriteLine("j =" + j); //出力なし
            }
            Console.WriteLine("i =" + i); // i=0 i=1が出力される
        }
    }
}

6,8行目にfor文があり2重ループ(入れ子)になっています。
12行目のbreakは、内側のfor文のみ抜けます。

ループの先頭に戻る(continue)

using System;
class Test1
{
    static void Main()
    {
        for (var i = 0; i < 3; i++)
        {
            if (i == 1)
            {
                continue;
            }
            Console.WriteLine("i =" + i); // i=0 i=2が出力される
        }
    }
}

10行目のcontinueでループ処理の先頭の6行目に戻ります。
12行目は、i=0 i=2が出力されます。

2重ループでcontinueを使用

内側のfor文の先頭に戻ります。

using System;
class Test1
{
    static void Main()
    {
        for (var i = 0; i < 2; i++)
        {
            for (var j = 0; j < 2; j++)
            {
                if (j == 0)
                {
                    continue;
                }
                Console.WriteLine("j =" + j); //j=1 j=1が出力される
            }
            Console.WriteLine("i =" + i); // i=0 i=1が出力される
        }
    }
}

6,8行目にfor文があり2重ループ(入れ子)になっています。
12行目のcontinueは、内側のfor文の先頭の8行目に戻ります。

foreach文で配列の値を取得

foreach(型 変数1 in 変数2){
  繰り返される箇所(変数1を使用)
}
  • 上記for文との違いは、変数の値を加算する処理がありません。
  • 配列やリストの要素を順番にアクセスします。
using System;
class Test1
{
    static void Main()
    {
        var arr1 = new[] { "赤", "黄", "青" };

        foreach (var str1 in arr1)
        {
            Console.WriteLine(str1); // 赤 黄 青が出力される
        }
    }
}

6行目は、配列です。
8行目は、foreach文で配列の全ての要素にアクセスします。

関連の記事

C# if文 条件分岐を行うサンプル
C# switch文のサンプル
C# while文とdo while文のサンプル
C# クラスとコンストラクタのサンプル

△上に戻る