プログラムは様々な動きをしています。
これはプログラムの中で様々な条件が設定されているためです。
C#ではどのような条件分岐を使うことができるのでしょうか。
今回はC#で使うことのできる条件分岐をいくつか見ていきましょー!

条件演算子
さっそく分岐条件をみていきたいとこですが、まずは条件をつくるために使う関係演算子を確認しておきましょう。
関係演算子 | 関係演算子詳細 |
---|---|
A == B | AとBが同じ場合 |
A != B | AとBが違う場合 |
A > B | AがBより大きい場合 |
A >= B | AがB以上の場合 |
A < B | AがBより小さい場合 |
A <= B | AがB以下の場合 |
「A == B」については、「A = B」ではないので注意しましょう。「=」を2つ使って関係演算子をつくります。
if文
条件分岐の基本となるのかこのif文。
これが使えなければ何も書けません。
1 2 3 4 5 6 | if (条件1) {条件1がtrueの際に実行される} else if (条件2) {条件1がfalseで、条件2がtrueの際に実行される} else {上記条件に当てはまらない際に実行される} |
if文の中にさらにif文を書くこともできます。例で見てみましょう。
1 2 3 4 5 6 7 8 9 | if (今日は日曜日 || 今日は土曜日) { if (仕事が残っている) {仕事をする} else {家でダラダラする} } else {仕事をする} |
日曜日か土曜日で、仕事があれば仕事をする。
なければ休む。
それ以外の日は仕事をする。
といったif文ですね。
switch文
1 2 3 4 5 6 7 8 9 10 11 12 | switch (式) { case 値A: 式と値Aが同じ場合に実行される break; case 値B: 式と値Bが同じ場合に実行される break; default 上記のいずれにも当てはまらない場合に実行される break; } |
式には、「整数型」、「char型」、「string型」、「enum(列挙型)」を指定できます。
「break」は必須なので、忘れずつけるようにしましょう。
「default」については、必須ではないのでなくても大丈夫です。でも付けておいたほうが曖昧にならないので良いと思います。
フォロースルーの禁止
C、C++のような言語では「break」が必須でなく、その結果複数のcase句が実行できるようになっています。これを「フォロースルー」と言います。
C、C++でも殆どの場合「break」のつけ忘れ、うっかりでフォロースルーが発生している場合が多いためC#では「break」必須となったようです。
フォロースルーが許される場合もある
case句が連続する場合は「break」を付けないフォロースルーが可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | string youbi = "月曜日" switch (youbi) { case 日曜日: case 土曜日: 仕事です。 break; case 月曜日: case 火曜日: case 水曜日: case 木曜日: case 金曜日: 式と値Bが同じ場合に実行される 休みです。 break; } |
結果は「仕事です」となります。
?:演算子
C#には「?:」という条件演算子があります。
僕はこれが結構好きです。
「if...else」よりコードが短く書けるので、読みやすさ向上という観点で使えると思います!
1 | 条件 ? trueの場合 : falseの場合 |
使いどころはたくさんありますが、nullチェックなんかで使っている人をよく見かけます。
こんな感じで使ったりできます!
1 2 | string hensu = string.Empty; hensu = value != null ? value : string.Empty; //valueがnullでない場合は「value」nullの場合は「string.Empty」 |
なんと1行で書けました!
まとめ
条件分岐を書く方法は様々用意されています。
プロジェクトのルールや状況に応じて適切と思われる演算子を使っていきましょう。