C++における三項演算子の使い方

三項演算子の基本

C++言語では、三項演算子(ternary operator)は条件式を簡潔に記述するための演算子です。一行のコード内で簡単な条件判断と値の選択を行う際に利用されます。三項演算子の構文は以下の通りです:

condition ? expression1 : expression2;
  • conditionはブール式です。
  • conditionがtrueの場合、expression1の値が返されます。
  • conditionがfalseの場合、expression2の値が返されます。

基本的な使用例

以下は、三項演算子を使用して二つの数値の大きい方を選択する例です:

#include <iostream>

int main() {
    int num1 = 15;
    int num2 = 25;

    // 三項演算子を使って大きい方の値を選択
    int bigger = (num1 > num2) ? num1 : num2;

    std::cout << "大きい値は: " << bigger << std::endl;
    return 0;
}

ネストした三項演算子

三項演算子をネストして複数の条件を処理することも可能ですが、コードの可読性が低下する可能性がある点に注意が必要です。

#include <iostream>

int main() {
    int x = 10;
    int y = 20;
    int z = 30;

    // ネストした三項演算子で三つの数値の中の最大値を選択
    int maximum = (x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z);

    std::cout << "最大値は: " << maximum << std::endl;
    return 0;
}

三項演算子と文字列、参照

三項演算子は文字列や参照の選択にも使用できます。

#include <iostream>
#include <string>

int main() {
    int age = 18;
    int valA = 5;
    int valB = 10;

    // 文字列を返す
    std::string status = (age >= 18) ? "成人" : "未成年"; 
    
    // 三項演算子を使って参照を返す
    int& largerValue = (valA > valB) ? valA : valB;
    // 大きい方の値を変更
    largerValue = 100;

    std::cout << "あなたは: " << status << "です" << std::endl;
    std::cout << "valA: " << valA << ", valB: " << valB << std::endl;
    return 0;
}

三項演算子のベストプラクティス

  • 三項演算子は、単純な条件判断でコードを簡潔にするのに適しています。
  • 構文は condition ? expression1 : expression2 です。
  • ネストして使用できますが、可読性に注意が必要です。
  • 関数、文字列、参照などと組み合わせて使用できます。

三項演算子を適切に使用することで、コードをより簡潔にできますが、複雑な条件の場合は、可読性を優先してif-else文を使用することをお勧めします。

タグ: C++ 三項演算子 条件式 コード最適化 プログラミングテクニック

7月29日 23:04 投稿