টার্নারি অপারেটর-কে if-else-এর একটি সংক্ষিপ্ত রূপ হিসেবে ভাবা যায়। এটি সাধারণত রিটার্ন স্টেটমেন্টে ব্যবহৃত হয় (তবে কেবল সেখানেই নয়), সিদ্ধান্ত নিতে এর মাত্র একটি লাইনই লাগে, আর এক্সপ্রেশন true হলে বাম দিকের মান এবং false হলে ডান দিকের মান রিটার্ন করে।
অনেক সাধারণ if/else এক্সপ্রেশন টার্নারি অপারেটর দিয়ে সরল করা যায়।
// this ternary statement
return 5 > 4 ? true : false;
// is equivalent to this if/else
if ( 5 > 4 ) {
return true;
} else {
return false;
}
তাহলে, if-else আর টার্নারি-এর মধ্যে বেছে নেব কীভাবে? আসলে টার্নারি অপারেটর ব্যবহার করা হয় সহজ পরিস্থিতিতে, যেখানে শুধু একটি শর্তের ভিত্তিতে একটি মান রিটার্ন করতে হয় এবং বাড়তি কোনো হিসাব করতে হয় না। বাকি সব ক্ষেত্রে if-else ব্যবহার করুন, যেমন নেস্টেড শর্ত, বড় এক্সপ্রেশন, আর যখন রিটার্ন ভ্যালু ঠিক করতে একাধিক লাইন দরকার হয়।
টার্নারি অপারেটর নেস্ট করা যায় বটে, কিন্তু কোডটি প্রায়ই পড়া কঠিন হয়ে যায়। এসব ক্ষেত্রে নেস্টেড if ব্যবহার করাই ভালো।
// hard to read
int value = expr1 ? expr2 && expr3 ? val1 : (val2 + val3) : expr4;
// easier to read
if (expr1){
if (expr2 && expr3){
return val1;
}
return val2 + val3;
}
return val4;
টার্নারি অপারেটর আর if/else স্টেটমেন্ট ভালো উদাহরণ যে প্রোগ্রামিংয়ে একই ফল পাওয়ার বিভিন্ন উপায় থাকে।