এই কন্ডিশনাল অপারেটরকে টেরনারি অপারেটর (Ternary Operator) ও বলা হয়। এই অপারেটরের তিনটি ফেজ থাকে।
Exp1 ? Exp2 : Exp3;
যেখানে Exp1, Exp2, এবং Exp3 এক্সপ্রেশন। কোলন (:) এর ব্যবহার এবং প্লেসমেন্ট চান। একটি ? এক্সপ্রেশনের ভ্যালু নিচের মত নির্ধারিত হয়: Exp1 ইভ্যালুয়েট হয়। যদি সেটি true হয়, তবে Exp2 ইভ্যালুয়েট হয় এবং পুরো ? এক্সপ্রেশনের ভ্যালু হয়। যদি Exp1 false হয়, তবে Exp3 ইভ্যালুয়েট হয় এবং তার ভ্যালু এক্সপ্রেশনের ভ্যালু হয়।
? কে টেরনারি অপারেটর বলা হয় কারণ এটি তিনটি অপারেন্ড নেয় এবং if-else স্টেটমেন্ট রিপ্লেস করতে পারে, যাদের রূপ নিচের মত:
if(condition) {
var = X;
} else {
var = Y;
}
উদাহরণস্বরূপ, নিচের কোডটি বিবেচনা করুন:
if(y < 10) {
var = 30;
} else {
var = 40;
}
উপরোক্ত কোডটি নিচের মত রিরাইট করা যায়:
var = (y < 10) ? 30 : 40;
উদাহরণ কোড
#include <iostream>
using namespace std;
int main() {
int x, y = 10;
x = (y < 10) ? 30 : 40;
cout << "value of x: " << x << endl;
return 0;
}
আউটপুট
value of x: 40