C#の意思決定構造:if、switch、三項演算子を徹底解説
意思決定構造では、プログラマが1つ以上の条件を指定し、プログラムによって評価・テストされます。条件が真と判定された場合に実行される文、およびオプションで偽と判定された場合に実行される文を指定します。
一般的な意思決定構造の形式は以下の通りです。

C#の意思決定ステートメント
| No. | ステートメントと説明 |
|---|---|
| 1 | if文 ブール式に続いて1つ以上の文が続く |
| 2 | if...else文 if文に続けて、ブール式が偽のときに実行されるelse文を指定可能 |
| 3 | ネストしたif文 if文またはelse if文の中に、別のif文やelse if文を記述可能 |
| 4 | switch文 変数を値のリストと照合して等価性をテスト |
| 5 | ネストしたswitch文 switch文の中に別のswitch文を記述可能 |
if文の基本構文
if (条件式) {
// 条件がtrueのときに実行される文
}
if...else文
if (条件式) {
// trueのときの処理
} else {
// falseのときの処理
}
if...else if...else文(複数条件)
if (条件1) {
// 条件1がtrue
} else if (条件2) {
// 条件1がfalseで条件2がtrue
} else {
// すべてfalse
}
switch文
switch文は、変数を値のリスト(caseラベル)と照合します。
switch (式) {
case 値1:
// 式 == 値1 のときの処理
break;
case 値2:
// 式 == 値2 のときの処理
break;
default:
// いずれにも一致しないときの処理
break;
}
switch式(C# 8.0以降)
より簡潔な式ベースのswitchも利用できます。
var result = value switch {
1 => "One",
2 => "Two",
_ => "Other"
};
三項演算子(? : 演算子)
前章で説明した条件演算子? :は、if...else文を置き換えるために使用できます。一般的な形式は以下の通りです。
Exp1 ? Exp2 : Exp3;
Exp1, Exp2, Exp3は式です。コロンの位置と使い方に注意してください。
?式の値は以下のように決定されます:
Exp1が評価される- trueの場合、
Exp2が評価され、その値が式全体の値になる - falseの場合、
Exp3が評価され、その値が式全体の値になる
三項演算子の例
int a = 10, b = 20;
int max = (a > b) ? a : b; // max = 20
string message = (max > 15) ? "大きい" : "小さい"; // "大きい"
パターンマッチング(C# 7.0以降)
モダンなC#では、パターンマッチングを使用したより強力な条件分岐が可能です。
// 型パターン
if (obj is string s) {
Console.WriteLine(s.Length);
}
// switch式でのパターンマッチング
var description = shape switch {
Circle c => $"半径: {c.Radius}",
Rectangle r => $"幅: {r.Width}, 高さ: {r.Height}",
_ => "不明な図形"
};
ベストプラクティス
- 単純な条件分岐には三項演算子を活用する
- 複数の離散的な値の比較にはswitch文を使用する
- 複雑な条件や範囲チェックにはif...else ifを使用する
- ネストが深くなりすぎる場合は、ガード節(早期return)やパターンマッチングで簡潔にする
- switch文では必ず
defaultケースを用意し、予期しない値を検知する
C言語
- 高度製造における意思決定を強力なアナリティクスで強化する
- データ取り込みを効率化し、より賢い意思決定を推進
- C# switch 文をマスターする:構文、例、ベストプラクティス
- C# break 文:使い方とタイミングを徹底解説
- C# continue 文をマスターする:ループ反復を効果的にスキップする方法
- C++ break文完全ガイド:ループ脱出の仕組みと実例
- C++ continue文完全ガイド:ループ制御の実例とベストプラクティス
- C言語条件文マスター:if、else、ネストの実践ガイド
- C言語goto文完全解説:構文、実用例、ベストプラクティス
- C言語の基本構文マスター:トークン、構造、セミコロン
- Python pass文完全マスター: 実践ガイド