三項演算子の基本
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文を使用することをお勧めします。