'?' অপারেটরটি টার্নারি অপারেটর হিসেবে পরিচিত কারণ এটি তিনটি অপারেন্ড নেয়। এটি "?:" দিয়ে রিপ্রেজেন্ট করা হয়। এটিকে কন্ডিশনাল অপারেটর ও বলা হয়। এই অপারেটর পারফরম্যান্স বাড়ায় এবং কোডের লাইন কমায়।
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