カテゴリ: C# 更新日: 2025/12/25

C#の条件演算子(三項演算子)を活用しよう!ifの省略形を学ぶ

C#の条件演算子(三項演算子)を活用しよう!ifの省略形を学ぶ
C#の条件演算子(三項演算子)を活用しよう!ifの省略形を学ぶ

先生と生徒の会話形式で理解しよう

生徒

「C#でif文をもっと短く書く方法ってありますか?」

先生

「ありますよ。条件演算子(または三項演算子)を使うと、1行でシンプルに書けます。」

生徒

「それって難しくないですか?具体的にどう書くんですか?」

先生

「実際にはとても簡単です。今からやさしく説明しますね!」

1. 条件演算子(三項演算子)とは?

1. 条件演算子(三項演算子)とは?
1. 条件演算子(三項演算子)とは?

条件演算子とは、if文を1行で表現できる特別な書き方です。三項演算子とも呼ばれ、次のような書式になります:


条件 ? 条件がtrueのときの値 : 条件がfalseのときの値;

この形式では、「?」の前に条件を書き、「trueならこれ」、「falseならあれ」という風に「:」を使って分岐します。

2. if文との違いを見てみよう

2. if文との違いを見てみよう
2. if文との違いを見てみよう

例えば、点数によって合否を判断する処理があるとします。通常のif文を使うと、次のように書きます。


int score = 80;
string result;

if (score >= 60)
{
    result = "合格";
}
else
{
    result = "不合格";
}

Console.WriteLine(result);

これを条件演算子を使って書き直すと、こうなります:


int score = 80;
string result = score >= 60 ? "合格" : "不合格";

Console.WriteLine(result);

たった1行で処理が完了していますね!とてもコンパクトになります。

3. 実行結果を確認しよう

3. 実行結果を確認しよう
3. 実行結果を確認しよう

上記の条件演算子を使ったコードを実行すると、次のような結果になります。


合格

4. 条件演算子の活用シーン

4. 条件演算子の活用シーン
4. 条件演算子の活用シーン

条件演算子は、簡単な条件分岐を手軽に書きたいときにとても便利です。たとえば、ユーザーの年齢に応じて料金を変える場合:


int age = 12;
int fee = age < 13 ? 500 : 1000;

Console.WriteLine("料金は" + fee + "円です。");

このように、複雑な処理ではなく、シンプルに分けたいだけなら条件演算子がぴったりです。

5. 条件演算子の注意点

5. 条件演算子の注意点
5. 条件演算子の注意点

とても便利な条件演算子ですが、複雑な条件や処理には向いていません。次のようにネスト(入れ子)にすると、初心者には読みにくくなります。


string result = score > 80 ? "優" : score >= 60 ? "良" : "不可";

このようなケースでは、素直にif文を使ったほうがわかりやすいです。

6. よくある間違い

6. よくある間違い
6. よくある間違い

条件演算子を使うとき、次のようなミスが初心者にありがちです:

  • セミコロン(;)の付け忘れ
  • 「?」と「:」を逆に書いてしまう
  • 型が一致しない値を返す(例えば、trueのときは文字列、falseのときは数値など)

以下は型が合わずにエラーになる例です:


// これはコンパイルエラーになります
var result = score >= 60 ? "合格" : 0;

「?」の前後と「:」の後ろは、同じ型にする必要があることを覚えておきましょう。

7. 実践:偶数か奇数かを判定しよう

7. 実践:偶数か奇数かを判定しよう
7. 実践:偶数か奇数かを判定しよう

実際に、数値が偶数か奇数かを判定してみましょう。


int number = 7;
string type = number % 2 == 0 ? "偶数" : "奇数";

Console.WriteLine(number + "は" + type + "です。");

7は奇数です。

%(パーセント)は、割り算の余りを求める演算子です。2で割った余りが0なら偶数、1なら奇数ですね。

まとめ

まとめ
まとめ

C#の条件演算子(三項演算子)は、if文の代わりに使える非常に便利な構文であり、コードを簡潔に、読みやすく整理したいときに最適です。特に、値を条件によって分けるようなケースにおいては、1行でスッキリと記述できるのが大きな魅力です。今回の記事では、基本構文、実用例、注意点、よくあるミスなど、初心者にもわかりやすく紹介してきました。

例えば、合格・不合格のような2択の分岐処理は、次のようにたった1行で実装できます。


string result = score >= 60 ? "合格" : "不合格";

これにより、if~else文で何行にも渡っていた処理を短くまとめられるため、プログラムの見通しも良くなります。また、条件演算子は単なる省略構文ではなく、代入式や出力処理に組み込んで使える柔軟性も持っています。

ただし、ネスト(入れ子)にすると読みづらくなる点には注意が必要です。条件が複雑になりすぎると、1行での表現はかえって理解しづらくなり、保守性が低下します。そのため、「簡潔さ」と「読みやすさ」のバランスを意識して使い分けましょう。

年齢による料金判定の実例


int age = 10;
string feeMessage = age < 13 ? "子供料金:500円" : "大人料金:1000円";
Console.WriteLine(feeMessage);

このように、年齢・性別・点数・状態などによるシンプルな分類には、条件演算子がとてもよく合います。if文では大げさに感じるような処理も、三項演算子なら見た目もスマートになります。

型一致に気をつけよう

条件演算子を使う際に最も気をつけるべき点は、戻す値の型が一致しているかどうかです。たとえば、片方がstringで、もう片方がintだとエラーになります。


// エラーになる例
var message = score >= 60 ? "合格" : 0; // ← 型が違う

このような場合は、どちらも同じ型に揃えることで正しく動作します。

条件演算子の活用まとめ

  • 短い条件分岐には最適
  • if文よりも簡潔で見やすくなる
  • 複雑な条件やネストには注意が必要
  • 型の整合性を守ることでエラー回避
  • 代入や出力の場面でスマートに使える

日常的なC#のコーディングにおいて、条件演算子を使いこなすことは可読性の高いコードを書く第一歩となります。最初は「?」や「:」の位置で迷うかもしれませんが、繰り返し使うことで自然と身につくでしょう。

先生と生徒の振り返り会話

生徒

「条件演算子って、if文の省略バージョンみたいで面白いですね!」

先生

「その通り。1行で分岐処理が書けるから、見た目もスッキリして気持ちいいですよね。」

生徒

「でも、ネストさせるとちょっと読みにくくなりそう…。そこは気をつけたほうがいいですね。」

先生

「うん、条件が複雑になるときは無理せず、ふつうのif文を使うのが正解です。臨機応変に使い分けるのがコツですよ。」

生徒

「たしかに、分かりやすさって大事ですもんね。これからはスッキリ書けそうです!」

先生

「いいですね。その調子で、いろんなコードを条件演算子で整理してみましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

C#の条件演算子(三項演算子)とは何ですか?

C#の条件演算子(三項演算子)とは、if文の処理を1行で表現できる構文です。「条件 ? 真の値 : 偽の値」の形で記述し、簡潔な条件分岐に使われます。
カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方