0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#で排他的論理和(XOR)演算子のコードってどう書くの?

Posted at

C#でXOR演算を使用して数学と英語の点数に基づいて判定するサンプルコードを示す.

以下のコードはC#で書いている.

条件:
数学(math)と英語(English)両方の点数が、
80点以上なら「hight」
数学(math)と英語(English)いずれかの点数が、
60点以上、80点未満なら「middle」
数学(math)と英語(English)いずれの点数も、
60点未満なら「row」

using System;

class Program
{
    static void Main()
    {
        int math = 85; // 数学の点数
        int english = 75; // 英語の点数
        
        string result = EvaluateScores(math, english);
        Console.WriteLine(result);
    }

    static string EvaluateScores(int math, int english)
    {
        // 80点以上の場合は "high"
        if (math >= 80 && english >= 80)
        {
            return "high";
        }
        
        // 60点以上80点未満の場合は "middle"
        if ((math >= 60 && math < 80) ^ (english >= 60 && english < 80))
        {
            return "middle";
        }

        // それ以外の場合は "row"
        return "row";
    }
}

排他的論理和(XOR)を表す演算子が「^」ということを初めて知った.

WEB開発の文脈における排他的論理和(XOR)演算のユースケース.

ユーザーの入力バリデーションで使える.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("オプション1を選択する場合は 'y' を、選択しない場合は 'n' を入力してください:");
        bool option1 = Console.ReadLine().ToLower() == "y";

        Console.WriteLine("オプション2を選択する場合は 'y' を、選択しない場合は 'n' を入力してください:");
        bool option2 = Console.ReadLine().ToLower() == "y";

        if (ValidateOptions(option1, option2))
        {
            Console.WriteLine("正しい選択です。いずれか一方のオプションが選択されました。");
        }
        else
        {
            Console.WriteLine("無効な選択です。いずれか一方のオプションを選択してください。");
        }
    }

    static bool ValidateOptions(bool option1, bool option2)
    {
        // 排他的論理和(XOR)を使用して、いずれか一方のみが選択されているかを確認
        return option1 ^ option2;
    }
}

JavaScriptで書くとこうなる. フロント側のバリデーションで使えそう.

function validateForm() {
    let option1 = document.getElementById('option1').checked;
    let option2 = document.getElementById('option2').checked;

    if (option1 ^ option2) {
        return true; // 正しい選択
    } else {
        alert('いずれか一方を選択してください。');
        return false;
    }
}

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?