C#で条件分岐や判定をしたい場合の基本的なイディオムについてまとめた。
変数の値を比較するだけの場合
(例)valという数値型の変数が5以上かどうかを判定したい時、
if(val >= 5)
変数を左にして書く。
if(5 <= val)
でも間違いではないが、基本的に文字は右から左に読むので、読みづらい。
変数の値が特定の範囲内にあるかどうかを判定する場合
(例)valという数値型の変数が5より大きく、10未満かどうかを判定したい時、
if(5 < val && val < 10)
判定したい値が指定した数値の中にあるかどうかが分かるように書く。
数学の5<x<10をイメージするといい。
複数の条件があり、その全ての条件を満たすときだけ処理をしたいとき
(例)nameがジョルノ・ジョバーナ、partが5、ageが15のときのみ何か処理をしたい時、
if(name != "ジョルノ・ジョバーナ") return;
if(part != 5) return;
if(age != 15) return;
(実行したい処理を書く)
1つのifで1つの条件を判定するようにする。
「return;」とだけ書くと、実行をその場でやめる。
if(name != "ジョルノ・ジョバーナ" && part != 5 && age != 15) return;
まとめて書くと条件が多ければ多いほど見にくくなってしまうので、分けて書く場合がベター。
ただbool値を返したい
(例)nameがジョルノ・ジョバーナかどうかだけを判定したい場合、
return name == "ジョルノ・ジョバーナ";
returnの後に条件分を書けばいいだけ。
「==」や「!=」は比較演算子なので、変数や値を比較演算子つなげて書くと、trueかfalseのbool値を返すので、
if(name == "ジョルノ・ジョバーナ") {
return true;
} else {
return false;
}
のように書くと冗長的な書き方になってしまうので、特にこだわりがなければ、上記の書き方はしない。
「name == "ジョルノ・ジョバーナ";」がtrueかfalseを返すことが分かっているので、余計に書く必要はない。
参考文献