[C#]数値をswitch文で範囲チェック!if文の判定についても

[C#]数値をswitch文で範囲チェック!if文の判定についても C#
広告

C#を使用して数値が特定の範囲内にあるかどうかをチェックする方法について学びましょう。

数値の範囲チェックはプログラムで頻繁に行われるタスクであり正確な判定が必要です。

以下では簡潔で分かりやすい方法を紹介します。

SPONSORLYNC

数値をSwitch文で範囲チェック

数値がある範囲に収まるかどうかをSwitch文を用いてチェックするには以下のようなコードが考えられます。

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("数値を入力してください:");
        int input = int.Parse(Console.ReadLine());

        switch (input)
        {
            case int n when (n >= 1 && n <= 10): 
         Console.WriteLine("入力された数値は1から10の範囲内です。"); 
         break; 
      case int n when (n >= 11 && n <= 20): 
         Console.WriteLine("入力された数値は11から20の範囲内です。"); 
         break; 
        case int n when (n >= 21 && n <= 30):
                Console.WriteLine("入力された数値は21から30の範囲内です。");
                break;

            default:
                Console.WriteLine("入力された数値は対応する範囲内にありません。");
                break;
        }
    }
}


この例ではSwitch文内でcaseにパターンを指定しそのパターンに一致する範囲の処理を行っています。

範囲外の場合はdefaultの処理が実行されます。

数値をif文で範囲内にあるか比較

整数の範囲チェックは比較演算子を使用して行います。

以下はC#での整数の範囲チェックの例です。

int numberToCheck = 15;
int minRange = 10;
int maxRange = 20;

if (numberToCheck >= minRange && numberToCheck <= maxRange)
{
    Console.WriteLine($"{numberToCheck} は範囲内です。");
}
else
{
    Console.WriteLine($"{numberToCheck} は範囲外です。");
}

この例では、numberToCheck が minRange 以上かつ maxRange 以下であるかどうかを判定しています。

広告

小数点数字の範囲チェック

浮動小数点数の範囲チェックも同様に比較演算子を使用します。

以下はC#での浮動小数点数の範囲チェックの例です。

double numberToCheck = 15.5;
double minRange = 10.0;
double maxRange = 20.0;

if (numberToCheck >= minRange && numberToCheck <= maxRange)
{
    Console.WriteLine($"{numberToCheck} は範囲内です。");
}
else
{
    Console.WriteLine($"{numberToCheck} は範囲外です。");
}

同様にnumberToCheck が minRange 以上かつ maxRange 以下であるかどうかを判定しています。

広告

正規表現で範囲指定しチェックする

範囲内の数値を正規表現で表現するには以下のようなパターンを作成します。

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        Console.WriteLine("数値を入力してください:");
        string input = Console.ReadLine();

        // 正規表現パターン
        string pattern = @"^(1[0-9]|20|30)$";

        // 正規表現による範囲内チェック
        if (Regex.IsMatch(input, pattern))
        {
            Console.WriteLine("入力された数値は範囲内です。");
        }
        else
        {
            Console.WriteLine("入力された数値は範囲外です。");
        }
    }
}

上記の例では1[0-9]は10から19まで20は20、30は30に一致します。

これにより指定された範囲内の数値かどうかを検証できます。

注意点
  • この方法は文字列としての範囲内チェックです。数値としての比較ではなく、文字列としてのパターンマッチングを行っています。
  • 数値の範囲が連続している場合は、正規表現が使いやすいですが、非連続の場合はSwitch文などがシンプルかつ効果的です。

まとめ

C#で数値が範囲内にあるかどうかをチェックする方法について学びました。

比較演算子を使用して簡単に範囲チェックができるほかカスタムメソッドを使ってより柔軟な実装も行えます。

プログラムで範囲チェックが必要な場面でこれらのテクニックを活用してみてください。

C#
広告
タイトルとURLをコピーしました