【C#】論理演算を知ろう! 分岐処理 4回目

ゲームプログラマーの悟です

この記事では

・&&や||って何?
・if文ってもう少し整理してかけないの?

という人の為に、プログラマーとして実際に現場で仕事し教育担当もしていた悟が

・論理演算子を使ってif文を書こう
・論理演算はどのように使うのか

を紹介していきます

前回の分岐処理についての解説内容をまだ見ていない方は
ぜひ下記の記事も参考にしてみてください▼

では実際に解説していきます

まず条件を確認しましょう

・18歳以上 かつ 20歳未満の時
・お酒は飲めませんと表示する

これをプログラムに落とし込むと

int age = 18;

if(age >= 18){
	if(age < 20){
                Console.WriteLine(“お酒が飲めません”);
        }
}

このようになります

しかし、この入れ子のif文はより短くすることが出来ます

・入れ子のifを使用している
・条件説明の時、~かつ、と表現されるとき

だいたいこの2つが当てはまるときにまとめることが出来ます

まとめるのに使われるのがAND演算子である”&&”になります

&&を使ったプログラム

int age = 18;

if(age >= 18 && age < 20){
	Console.WriteLine(“お酒が飲めません”);
}

このようになります

条件式を確認してみましょう

age >= 18 && age < 20
     18以上      かつ      20未満

このように”&&”を使用すると、両方の条件がtrueの時のみif文の中かっこを処理します

ちなみにこの条件式がtrueなのかfalseなのか分からない場合はログで確認してみましょう!

Console.WriteLin(age >= 18 && age < 20);

基本的にログを見て確認することは仕事で組むときも起こります
日頃からプログラムをログで確認する癖をつけておきましょう

使うときの注意点

AND演算子”&&”はいくつでもつなげて書くことが出来ますが
あまり長いく複雑にはしないようにしましょう

// イメージ
if(isJump && isAttack && hasGauge && isEnemyHPlow && isPlay && isCombo && isPlayerHPMax){
	//  特殊勝利演出
}

組んだ時は動いても後にバグに見舞われることが大半です

多用しすぎないようにしましょう

まず条件を確認しましょう

・18歳未満または65歳以上
・”未成年か高齢者”を表示する

これをプログラムに落とし込むと

int age = 8;

if(age < 18){
	Console.WriteLine(“未成年と高齢者”);
}

if(age >= 65){
	Console.WriteLine(“未成年と高齢者”);
}

このようになります

しかし、この並列のifをより短くすることが出来ます

・並列のifを使用している
・条件説明の時、~または、と表現されるとき

この2つが当てはまるときに一つにまとめることが出来ます

そこで使われるのが”OR演算子”である”||”になります

||を使ったプログラム

int age = 18;

if(age < 18 || age >= 65){
	Console.WriteLine(“未成年と高齢者”);
}

このようになります

条件式を確認してみましょう

age < 18 || age >= 65
   18歳未満    または      65歳以上

このように”||”を使用すると、いずれか片方の条件式がtrueの時にif文の中かっこを処理します

これももちろんログで確認が可能です

Console.WriteLin(age < 18 || age >= 65);

使うときの注意点

OR演算子も繋げて書くことが出来ますが、
AND演算子と同じようにあまり長く繋げないようにしましょう

if(item1 || item2 || item3 || item4 || item5 || item6){
	// 何かしらの処理
}

ORも使いすぎると混乱やバグを引き起こす可能性があります

AND演算子とOR演算子を紹介しましたがこれらも組み合わせることが可能です

(isPlay && isGround) || (isPlay && isDoubleJump)
// プレイ中かつ地面にいる時 または プレイ中ダブルジャンプが可能な時

イメージ的にはこんな感じで繋げることが出来ます

悟

実際はこんな感じに組むことはありませんが

あくまで例として参考にしてください

今回はAND演算子”&&”とOR演算子”||”の解説をしました

便利な判明余計なバグを起こしやすくもなりますが、
if文の条件式に出てきても驚かないように覚えておきましょう!

コメント

タイトルとURLをコピーしました