ゲームプログラマーの悟です
この記事では
・&&や||って何?
・if文ってもう少し整理してかけないの?
という人の為に、プログラマーとして実際に現場で仕事し教育担当もしていた悟が
・論理演算子を使ってif文を書こう
・論理演算はどのように使うのか
を紹介していきます
前回の分岐処理についての解説内容をまだ見ていない方は
ぜひ下記の記事も参考にしてみてください▼
では実際に解説していきます
&& AND演算子 論理積
まず条件を確認しましょう
・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){
// 特殊勝利演出
}
組んだ時は動いても後にバグに見舞われることが大半です
多用しすぎないようにしましょう
|| OR演算子 論理和
まず条件を確認しましょう
・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文の条件式に出てきても驚かないように覚えておきましょう!
コメント