C++の三項演算子(条件演算子 ?:)を完全解説!初心者でもわかる使い方
生徒
「C++のコードを見ていたら、はてなマークとコロンが並んでいる書き方がありました。これは何ですか?」
先生
「それは三項演算子と呼ばれるもので、条件によって結果を切り替えるための書き方です」
生徒
「条件というと、if文と同じようなものですか?」
先生
「考え方は似ていますが、もっと短く書けるのが特徴です。順番に見ていきましょう」
1. 三項演算子とは?
C++の三項演算子は、条件演算子とも呼ばれ、 条件によって二つの値のどちらかを選ぶための演算子です。 記号としては、はてなマークとコロンを使い、 一つの式の中で条件判断を行います。 if文と同じように条件分岐ができますが、 書き方がとてもコンパクトなのが特徴です。 短い判断処理を一行で書きたいときによく使われます。
2. 三項演算子の基本的な書き方
三項演算子の基本の形は、 条件式、はてなマーク、真のときの値、コロン、偽のときの値、 という順番で書きます。 条件が正しければ左側の値が選ばれ、 間違っていれば右側の値が選ばれます。 文章で書くと少し難しく感じますが、 二択問題を解いているイメージを持つと理解しやすくなります。
int age = 20;
std::string result = (age >= 18) ? "大人です" : "子供です";
std::cout << result << std::endl;
大人です
3. if文との違いを比べてみよう
三項演算子は、if文の代わりとして使われることが多いです。 if文は処理の流れを分ける書き方ですが、 三項演算子は値を決めるための書き方です。 条件によって変数に入れる値を変えたい場合は、 三項演算子を使うとコードがすっきりします。 ただし、処理が多い場合はif文の方が読みやすくなります。
int score = 80;
std::string judge = (score >= 60) ? "合格" : "不合格";
std::cout << judge << std::endl;
合格
4. 数値を使った三項演算子の例
三項演算子は文字だけでなく、 数値にも使うことができます。 例えば、二つの数字のうち、 大きい方を選ぶといった処理も簡単に書けます。 比較演算子と組み合わせることで、 条件に応じた数値の決定が可能になります。 数学の問題を解く感覚で考えると理解しやすくなります。
int a = 10;
int b = 20;
int maxValue = (a > b) ? a : b;
std::cout << maxValue << std::endl;
20
5. 三項演算子を使うときの考え方
三項演算子は、 条件、はい、いいえ、 という流れで考えると分かりやすくなります。 条件が正しいならこの値、 そうでなければ別の値、 という単純な判断を式として書いています。 文章で考えてからコードに直すと、 初心者でも混乱しにくくなります。
6. 三項演算子の注意点
三項演算子は便利ですが、 使いすぎるとコードが読みにくくなります。 特に三項演算子を入れ子にすると、 何をしているのか分かりにくくなりがちです。 一目で理解できる簡単な条件だけに使うことが、 読みやすいコードを書くためのポイントです。
7. 初心者がつまずきやすいポイント
初心者がつまずきやすいのは、 はてなマークとコロンの位置です。 どこまでが条件で、 どこからが結果なのかを、 しっかり区別することが大切です。 まずは短い例で練習し、 三項演算子の形に慣れることが理解への近道です。
8. 三項演算子は値を選ぶ演算子
三項演算子は、 処理を分岐させるというより、 条件によって値を選ぶための演算子です。 if文と同じように見えても、 役割は少し違います。 この違いを意識すると、 どちらを使うべきか判断しやすくなります。 三項演算子を正しく使うことで、 C++のコードをより簡潔に書けるようになります。