যে অপারেটরগুলো তিনটি অপারেন্ড लेकर কাজ করে, সেগুলোকেই টার্নারি অপারেটর বলা হয়। এটি ? : দিয়ে প্রতীকীভাবেই প্রকাশ করা হয়। এটিকে কন্ডিশনাল অপারেটর ও বলা হয়। এই অপারেটর পারফরম্যান্স বাড়ায় এবং কোডের লাইন কমায়।
C-এ টার্নারি অপারেটরের সিনট্যাক্স নিচে দেওয়া হলো:
Expression1 ? Expression2 : Expression3
C-এ টার্নারি অপারেটরের একটি উদাহরণ:
উদাহরণ
#include <stdio.h>
int main() {
int a = -1;
double b = 26.4231;
int c = a ? printf("True value : %lf", b) : printf("False value : 0");
return 0;
}
আউটপুট
True value : 26.423100
Expression1 সবসময় ইভ্যালুয়েট হবে যখন Expression2 এবং Expression3 Expression1-এর ফলাফলের ওপর নির্ভরশীল। যদি Expression1-এর ফলাফল নন-জিরো বা নেগেটিভ হয়, তবে Expression2 প্রদর্শিত হবে, অন্যথায় Expression3 প্রদর্শিত হবে।
টার্নারি অপারেটরের একটি রিটার্ন টাইপ রয়েছে। রিটার্ন টাইপ Expression2-এর ওপর এবং Expression3-এর Expression2-এ কনভার্টিবিলিটির ওপর নির্ভর করে। যদি সেগুলো কনভার্টিবল না হয়, তবে কম্পাইলার এরর থ্রো করবে।
C-এ টার্নারি অপারেটরের আরেকটি উদাহরণ:
উদাহরণ
#include <stdio.h>
int main() {
int x = -1, y = 3;
double b = x + y + 0.5;
int c = x < y ? printf("True value : %lf", b) : printf("False value : 0");
return 0;
}
আউটপুট
True value : 2.500000