【C#】論理演算

目次

概要

特定の条件を満たすかどうかを判断する。
得られる値はBool値(満たしている場合は「True:真」、満たしていない場合は「False:偽」)。

そして、論理演算をする時は以下の二つを頭に入れておく必要がある。

  • 比較演算子
  • 論理和・論理積・否定

ソースコード

/********************* 比較演算子 *********************/
Console.WriteLine("/********************* 比較演算子 *********************/");
String playerName = "";
bool isInputtedName = playerName.Length == 0;
Console.WriteLine("名前が空欄になっていますか?(名前の文字数が0ですか?)" + isInputtedName);
bool isReleasedQuest = true;
Console.WriteLine("クエストが解放されてないかチェック" + !isReleasedQuest);

int hp = 30;
Console.WriteLine("HPは残っていますか?(HPは0より大きいですか?)" + (hp > 0));

int maxItemCount = 10; // アイテム最大所持数
int itemCount = 10; // アイテム所持数
Console.WriteLine("アイテム欄に空きはありますか?(アイテム所持数はアイテム最大所持数よりも小さいですか?)" + (itemCount < maxItemCount));

int mp = 30;
Console.WriteLine("MPは30ありますか?(MPは30より大きいですか?)" + (mp >= 0));

int attack = 80; // 攻撃力
int defence = 120; // 防御力
Console.WriteLine("ダメージは0にできますか?(攻撃力以上の戊漁猟はありますか?)" + (defence >= attack));

/********************* 論理和・論理積・否定 *********************/
Console.WriteLine("/********************* 論理和・論理積・否定 *********************/");
Console.WriteLine("攻撃力か防御力、どちらか100を超えていますか?)" + (attack > 100 || defence > 100) );
Console.WriteLine("攻撃力か防御力、どちらも100を超えていますか?)" + (attack > 100 && defence > 100) );

String forbiddenName = "DQN"; //属性
Console.WriteLine("不適切な名前が入力されていませんか?" + (forbiddenName != "DQN"));

実行結果

/********************* 比較演算子 *********************/
名前が空欄になっていますか?(名前の文字数が0ですか?)True
クエストが解放されてないかチェックFalse
HPは残っていますか?(HPは0より大きいですか?)True
アイテム欄に空きはありますか?(アイテム所持数はアイテム最大所持数よりも小さいですか?)False
MPは30ありますか?(MPは30より大きいですか?)True
ダメージは0にできますか?(攻撃力以上の戊漁猟はありますか?)True
/********************* 論理和・論理積・否定 *********************/
攻撃力か防御力、どちらか100を超えていますか?)True
攻撃力か防御力、どちらも100を超えていますか?)False
不適切な名前が入力されていませんか?:False

詳細

論理演算は以下の論理演算子を使う。

論理演算子(比較)意味
A == BAとBが等しい
A != BAとBが等しくない
A > BAがBよりも大きい
A < BAがBよりも小さい
A >= BAはB以上である
A <= BAはB以下である
論理演算子意味
A || BAまたはB(AとBどちらかを満たす)
A && BAかつB(AとBの両方を満たす)
!AAではない

これらを使って、現在の状況に応じて処理を分岐させていくことに役立つ。