C# while文とdo while文のサンプル

C#のwhile文とdo while文のサンプルです。

目次

while文 while文とは / while文のサンプル
  ループを抜ける(break) / 二重ループを抜ける
  ループの先頭に戻る(continue)
do...while文 do...while文とは / do...while文のサンプル
  ループを抜ける(break) / 二重ループを抜ける
  ループの先頭に戻る(continue)
演算子 関係演算子と等値演算子

while文とは

while (条件)
{
       実行される処理
}
  • 条件がtrueの間、処理を繰り返します。
  • 最初の条件の判定でfalseの場合、ループは1回も実行されません。
  • 処理に、条件をfalseにするロジックがないと無限ループになるので注意が必要です。
  • 以下は、Microsoftのwhile (C# リファレンス)のリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/while

while文のサンプル

using System;
class Test1
{
    static void Main()
    {
        int i = 0;

        while (i < 5)
        {
            Console.WriteLine(i); //0,1,2,3,4が出力される
            i++;
        }
    }
}

8行目は、値が5より小さい間、処理を繰り返します。
11行目は、条件になる値を加算しています。

while文 ループを抜ける(break) 

using System;
class Test1
{
    static void Main()
    {
        int i = 0;

        while (true)
        {
            if (i == 3)
            {
                break;
            }
            Console.WriteLine(i); //0,1,2が出力される
            i++;
        }
    }
}

12行目のbreakは、while文を抜けます。
8行目は、条件をtrueにしています。このサンプルでは12行目のbreakがないと無限ループになるので注意して下さい。

二重ループを抜ける

using System;
class Test1
{
	static void Main()
	{
		int i = 0;
		Boolean outFlg = false;
		while (true)
		{
			while (true)
			{
				if (i == 3)
				{
					outFlg = true;
					break;
				}
				Console.WriteLine(i); //0,1,2が出力される
				i++;
			}
			if (outFlg == true)
			{
				break;
			}
		}
	}
}

8,10行目にwhileがある2重ループです。
15行目のbreakは内側のwhile文(10行目)のみ抜けます。
外側のwhile文(8行目)を抜けるために14行目でフラグを使用し22行目のbreakで外側のwhile文を抜けています。

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

using System;
class Test1
{
    static void Main()
    {
        int i = 0;

        while (i < 5)
        {
            if (i == 3)
            {
                i++;
                continue;
            }
            Console.WriteLine(i); //0,1,2,4が出力される
            i++;
        }
    }
}

13行目のcontinueは、次は8行目を実行します。そのため15行目は実行されません。
このサンプルでは12行目の加算がないと無限ループになるので注意して下さい。

do...while文とは

do {
       実行される処理
}
while (条件);
  • 条件がtrueの間、処理を繰り返します。
  • 必ず1回は処理が実行されます。
  • 処理に、条件をfalseにするロジックがないと無限ループになるので注意が必要です。

do...while文のサンプル

using System;
class Test1
{
    static void Main()
    {
        int i = 0;

        do
        {
            Console.WriteLine(i); //0,1,2,3,4が出力される
            i++;
        }
        while (i < 5);
    }
}

13行目は、値が5より小さい間、処理を繰り返します。

do...while文 ループを抜ける(break)

using System;
class Test1
{
    static void Main()
    {
        int i = 0;

        do
        {
            if (i == 3)
            {
                break;
            }
            Console.WriteLine(i); //0,1,2が出力される
            i++;
        }
        while (true);
    }
}

12行目のbreakは、do...while文を抜けます。
17行目は、条件をtrueにしています。このサンプルでは12行目のbreakがないと無限ループになるので注意して下さい。

二重ループを抜ける

using System;
class Test1
{
	static void Main()
	{
		int i = 0;
		do
		{
			bool outFlg = false;
			do
			{
				if (i == 3)
				{
					outFlg = true;
					break;
				}
				Console.WriteLine(i); //0,1,2が出力される
				i++;
			}
			while (true);
			if (outFlg == true)
			{
				break;
			}
		} while (true);
	}
}

7,10行目にdoがある2重ループです。
15行目のbreakは内側のdo while文(10行目)のみ抜けます。
外側のdo while文(7行目)を抜けるために14行目でフラグを使用し23行目のbreakで外側のdo while文を抜けています。

do...while文 ループの先頭に戻る(continue)

using System;
class Test1
{
    static void Main()
    {
        int i = 0;

        do
        {
            if (i == 3)
            {
                i++;
                continue;
            }
            Console.WriteLine(i); //0,1,2,4が出力される
            i++;
        }
        while (i < 5);
    }
}

13行目のcontinueは、次は18行目を実行します。そのため15行目は実行されません。
このサンプルでは12行目の加算がないと無限ループになるので注意して下さい。

関係演算子と等値演算子

C#の関係演算子と等値演算子です。

関係演算子 説明
a > b aはbより大きい
a >= b aはbより大きい または 等しい
a < b aはbより小さい
a <= b aはbより小さい または 等しい
等値演算子 説明
a == b aとbの値は等しい
a != b aとbの値は等しくない

以下は、MicrosoftのC# 演算子の関係演算子のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/#relational-and-type-testing-operators

以下は、MicrosoftのC# 演算子の等値演算子のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/#equality-operators

関連の記事

C# if文 条件分岐を行うサンプル
C# switch文のサンプル
C# for文のサンプル(break/continue)
C# クラスとコンストラクタのサンプル

△上に戻る