カテゴリ: C++ 更新日: 2026/02/22

C++の三項演算子(条件演算子 ?:)を完全解説!初心者でもわかる使い方

三項演算子 (条件演算子 ?: ) の使い方
三項演算子 (条件演算子 ?: ) の使い方

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

生徒

「C++のコードを見ていたら、はてなマークとコロンが並んでいる書き方がありました。これは何ですか?」

先生

「それは三項演算子と呼ばれるもので、条件によって結果を切り替えるための書き方です」

生徒

「条件というと、if文と同じようなものですか?」

先生

「考え方は似ていますが、もっと短く書けるのが特徴です。順番に見ていきましょう」

1. 三項演算子とは?

1. 三項演算子とは?
1. 三項演算子とは?

C++の三項演算子は、条件演算子とも呼ばれ、 条件によって二つの値のどちらかを選ぶための演算子です。 記号としては、はてなマークとコロンを使い、 一つの式の中で条件判断を行います。 if文と同じように条件分岐ができますが、 書き方がとてもコンパクトなのが特徴です。 短い判断処理を一行で書きたいときによく使われます。

2. 三項演算子の基本的な書き方

2. 三項演算子の基本的な書き方
2. 三項演算子の基本的な書き方

三項演算子の基本の形は、 条件式、はてなマーク、真のときの値、コロン、偽のときの値、 という順番で書きます。 条件が正しければ左側の値が選ばれ、 間違っていれば右側の値が選ばれます。 文章で書くと少し難しく感じますが、 二択問題を解いているイメージを持つと理解しやすくなります。


int age = 20;
std::string result = (age >= 18) ? "大人です" : "子供です";

std::cout << result << std::endl;

大人です

3. if文との違いを比べてみよう

3. if文との違いを比べてみよう
3. if文との違いを比べてみよう

三項演算子は、if文の代わりとして使われることが多いです。 if文は処理の流れを分ける書き方ですが、 三項演算子は値を決めるための書き方です。 条件によって変数に入れる値を変えたい場合は、 三項演算子を使うとコードがすっきりします。 ただし、処理が多い場合はif文の方が読みやすくなります。


int score = 80;
std::string judge = (score >= 60) ? "合格" : "不合格";

std::cout << judge << std::endl;

合格

4. 数値を使った三項演算子の例

4. 数値を使った三項演算子の例
4. 数値を使った三項演算子の例

三項演算子は文字だけでなく、 数値にも使うことができます。 例えば、二つの数字のうち、 大きい方を選ぶといった処理も簡単に書けます。 比較演算子と組み合わせることで、 条件に応じた数値の決定が可能になります。 数学の問題を解く感覚で考えると理解しやすくなります。


int a = 10;
int b = 20;

int maxValue = (a > b) ? a : b;
std::cout << maxValue << std::endl;

20

5. 三項演算子を使うときの考え方

5. 三項演算子を使うときの考え方
5. 三項演算子を使うときの考え方

三項演算子は、 条件、はい、いいえ、 という流れで考えると分かりやすくなります。 条件が正しいならこの値、 そうでなければ別の値、 という単純な判断を式として書いています。 文章で考えてからコードに直すと、 初心者でも混乱しにくくなります。

6. 三項演算子の注意点

6. 三項演算子の注意点
6. 三項演算子の注意点

三項演算子は便利ですが、 使いすぎるとコードが読みにくくなります。 特に三項演算子を入れ子にすると、 何をしているのか分かりにくくなりがちです。 一目で理解できる簡単な条件だけに使うことが、 読みやすいコードを書くためのポイントです。

7. 初心者がつまずきやすいポイント

7. 初心者がつまずきやすいポイント
7. 初心者がつまずきやすいポイント

初心者がつまずきやすいのは、 はてなマークとコロンの位置です。 どこまでが条件で、 どこからが結果なのかを、 しっかり区別することが大切です。 まずは短い例で練習し、 三項演算子の形に慣れることが理解への近道です。

8. 三項演算子は値を選ぶ演算子

8. 三項演算子は値を選ぶ演算子
8. 三項演算子は値を選ぶ演算子

三項演算子は、 処理を分岐させるというより、 条件によって値を選ぶための演算子です。 if文と同じように見えても、 役割は少し違います。 この違いを意識すると、 どちらを使うべきか判断しやすくなります。 三項演算子を正しく使うことで、 C++のコードをより簡潔に書けるようになります。

カテゴリの一覧へ
新着記事
New1
Rust
Rustの所有権(Ownership)の仕組みを完全ガイド!初心者でもわかるメモリ安全とムーブ
New2
C++
C++開発環境を最適化する方法!初心者向けに徹底解説(GCC, Clang, Visual Studio, CMake)
New3
C++
C++のビルドツール(Make・Ninja・MSBuild)の違いを完全ガイド!初心者でもわかる開発環境構築
New4
C++
C++のsizeof演算子を完全解説!初心者でもわかる役割と使いどころ
人気記事
No.1
Java&Spring記事人気No1
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.2
Java&Spring記事人気No2
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.3
Java&Spring記事人気No3
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.4
Java&Spring記事人気No4
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.5
Java&Spring記事人気No5
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.6
Java&Spring記事人気No6
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.7
Java&Spring記事人気No7
C++
CMakeの役割と導入方法をやさしく解説!C++開発環境構築ガイド
No.8
Java&Spring記事人気No8
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド