C#の条件式とは?
C#の条件式(条件分岐)は、「もし○○なら~する」「それ以外なら~する」というように、プログラムの流れを分けるために使う構文です。
代表的な方法は次のとおりです。
if / else if / else
文switch / case
文- 三項演算子(条件演算子)
?:
1. if / else if / else 文
目次
1.1 基本の形
if (条件式)
{
// 条件式が true (真) のとき実行されるブロック
}
else
{
// 条件式が false (偽) のとき実行されるブロック
}
ポイント:
(条件式)
はtrue
またはfalse
を返す式(例:x > 0
,score >= 60
など)。if
で記述した「条件」が true の場合のみ、{ }
内のコードを実行します。- それ以外(false)の場合は、
else
ブロックを実行します。
1.2 else if の追加
if
だけだと足りない場合は、else if
を追加することで、複数の条件を順番にチェックできます。
if (条件式A)
{
// 条件式Aが true のとき
}
else if (条件式B)
{
// Aが false だが条件式Bが true のとき
}
else
{
// A、Bがどちらも false のとき
}
サンプルコード
int score = 75;
if (score >= 80)
{
Console.WriteLine("合格!(優秀)");
}
else if (score >= 60)
{
Console.WriteLine("合格!");
}
else
{
Console.WriteLine("不合格です…");
}
上の例では、score
の値に応じて表示するメッセージが変わります。
2. switch / case 文
複数の条件を使って分岐するとき、if / else if
が長くなりすぎる場合に switch / case
を使うと 見やすく・整理しやすく なることがあります。
2.1 基本の形
switch (式)
{
case 値1:
// 式が 値1 のときに実行する処理
break;
case 値2:
// 式が 値2 のときに実行する処理
break;
default:
// どの case にも当てはまらない場合
break;
}
switch (式)
には整数型や文字列などを指定できます。case 値:
の部分には、「その値のときの処理」を書きます。- どの
case
にも当てはまらないときは、default:
の処理が実行されます。
サンプルコード
int dayOfWeek = 3;
switch (dayOfWeek)
{
case 1:
Console.WriteLine("月曜日");
break;
case 2:
Console.WriteLine("火曜日");
break;
case 3:
Console.WriteLine("水曜日");
break;
default:
Console.WriteLine("その他の曜日");
break;
}
dayOfWeek
が 1 なら「月曜日」、2 なら「火曜日」、3 なら「水曜日」を表示し、それ以外は「その他の曜日」と表示します。
3. 三項演算子(条件演算子) ?:
if / else
のように分岐を行いながら、1つの値を選んで変数に代入したい、あるいはメッセージを1行で決めたいときに便利です。
3.1 基本の形
変数 = (条件式) ? 値A : 値B;
(条件式)
が true の場合 →値A
が返される(条件式)
が false の場合 →値B
が返される
サンプルコード
int score = 80;
string message = (score >= 60) ? "合格" : "不合格";
Console.WriteLine(message);
score >= 60
かどうかで message
に格納する文字列を変えています。
4. 比較演算子と注意点
条件式の中では、さまざまな比較演算子が使われます。代表的なものは次のとおりです。
==
: 左右が 等しい かどうか!=
: 左右が 等しくない かどうか>
: 左が右よりも 大きい か<
: 左が右よりも 小さい か>=
: 左が右以上か<=
: 左が右以下か
注意点①: 代入演算子 =
と比較演算子 ==
の違い
=
は「代入」です。==
は「左右が等しいかどうかを比較」します。
int a = 10; // a に 10 を代入
bool isTen = (a == 10); // a が 10 と等しいかどうかを比較
注意点②: AND / OR 条件
&&
(AND): 両方が true のときだけ true||
(OR) : どちらかが true のとき true
// 例: a > 0 AND b > 0
if (a > 0 && b > 0)
{
// a と b が両方 0 より大きいときのみ実行
}
まとめ
- if / else if / else:最も基本的な条件分岐。状況に応じて複数の条件チェックができる。
- switch / case:条件が複数あり、定数や特定の値に応じて処理を分けたいときに便利。
- 三項演算子
?:
:短い条件分岐で、値を返して変数に代入したりメッセージを決定したりするときに便利。 - 比較演算子:
==
,!=
,>
,<
などを使って、変数の値や式の結果をチェックする。 - 演算子の使い分けに注意:
=
と==
は似て非なるもの。
次に学ぶとよいこと
- パターンマッチング(C# 7 以降): 型や値のパターンで分岐できる機能。
- 式やメソッドを使ったさらに複雑な条件: 例)
if (IsValidUser(user) && user.Age >= 18) ...
- エラー処理(例外処理):
try / catch
で想定外のエラーに対応する仕組み。
ここまでで紹介した基本的な条件式をマスターすると、プログラムの流れを自在にコントロールできるようになります。まずは小さなサンプルを書きながら、動きを確認してみましょう。
ディスカッション
コメント一覧
まだ、コメントがありません