C++の条件演算子(三項演算子)の基本構文と使い方

C++の**条件演算子(conditional operator)**は、if ~ else文のような処理を、より簡潔に1行で書くことができる便利な構文です。本記事では、条件演算子の仕組みと注意点を、サンプルコードを使ってやさしく解説いたします。


目次

サンプルコード(C++)

以下のコードは、入力された数値に応じて異なるコースを選択し、対応する文字を出力する処理を、条件演算子を使って記述した例です。

#include <iostream>
using namespace std;

int main()
{
    int selection;
    char course;

    cout << "コース番号を入力してください。" << endl;
    cin >> selection;

    course = (selection == 2) ? 'X' : 'Y';
    cout << course << "コースが選択されました。" << endl;

    return 0;
}

コードの解説

このプログラムの処理は以下の通りです。

  1. ユーザーに数値(コース番号)の入力を求めます。
  2. 入力された値が 2 であれば、'X' を変数 course に代入します。
  3. それ以外の値であれば、'Y' を代入します。
  4. 最終的に、選択されたコースをメッセージとして出力します。

条件演算子の構文

変数 = (条件式) ? 真の場合の値 : 偽の場合の値;
  • 条件式:評価される論理式(例:selection == 2
  • ?:条件がのときに使う値とのときの値を分岐させる記号
  • ::条件がだったときに選ばれる値を指定

この構文は、if ~ elseの処理を1行にまとめたいときに便利です。


よくある間違いと注意点

代入忘れ

以下のように、= を書き忘れると値が代入されず無意味な処理になります。

ans == (res == 1) ? 'A' : 'B';  // 誤り:比較演算子(==)になっている

正しくは次のように、**代入演算子(=)**を使います。

ans = (res == 1) ? 'A' : 'B';  // 正しい書き方

if文との比較

// 条件演算子を使った場合
course = (selection == 2) ? 'X' : 'Y';

// if ~ else を使った場合
if (selection == 2) {
    course = 'X';
} else {
    course = 'Y';
}

このように、短くシンプルに記述したい場合は条件演算子が便利です。ただし、複雑な処理を含む場合は、可読性の観点から if ~ else の方が適していることもあります。


まとめ

  • 条件演算子は「簡易的なif文」として使える便利な構文です。
  • (条件) ? 値1 : 値2 という形式で、条件に応じて2つの値から1つを選びます。
  • 単純な代入処理をコンパクトに書きたいときに有効ですが、過度な使用は可読性を損なう恐れがあるため注意が必要です。

C++の文法を効率的に活用するために、ぜひ条件演算子も使いこなせるようになっておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次