কম্পিউটার

C++ এ শর্তসাপেক্ষ টারনারি অপারেটর (?:)


কন্ডিশনাল অপারেটর (? :) হল একটি টার্নারি অপারেটর (এর জন্য তিনটি অপারেন্ড লাগে)। শর্তসাপেক্ষ অপারেটর নিম্নরূপ কাজ করে -

  • প্রথম অপারেন্ডটি স্পষ্টভাবে বুলে রূপান্তরিত হয়। এটি মূল্যায়ন করা হয় এবং চালিয়ে যাওয়ার আগে সমস্ত পার্শ্ব প্রতিক্রিয়া সম্পন্ন হয়৷
  • যদি প্রথম অপারেন্ডটি সত্য (1) তে মূল্যায়ন করে, তবে দ্বিতীয় অপারেন্ডটি মূল্যায়ন করা হয়৷
  • যদি প্রথম অপারেন্ডটি মিথ্যা (0) মূল্যায়ন করে, তবে তৃতীয় অপারেন্ডটি মূল্যায়ন করা হয়৷

কন্ডিশনাল অপারেটরের ফলাফল হল যেটি অপারেন্ড মূল্যায়ন করা হয় তার ফলাফল - দ্বিতীয় বা তৃতীয়৷ শুধুমাত্র শেষ দুটি অপারেন্ডের একটি শর্তসাপেক্ষ অভিব্যক্তিতে মূল্যায়ন করা হয়। শর্তসাপেক্ষ অপারেটরের মূল্যায়ন খুবই জটিল। উপরের পদক্ষেপগুলি এটির একটি দ্রুত ভূমিকা ছিল। শর্তযুক্ত অভিব্যক্তিতে ডান-থেকে-বাম সহযোগীতা রয়েছে। প্রথম অপারেন্ডটি অবশ্যই অবিচ্ছেদ্য বা পয়েন্টার টাইপের হতে হবে। নিম্নলিখিত নিয়মগুলি দ্বিতীয় এবং তৃতীয় অপারেন্ড -

-এর ক্ষেত্রে প্রযোজ্য
  • যদি উভয় অপারেন্ড একই ধরনের হয়, ফলাফলটি সেই ধরনের।
  • যদি উভয় অপারেন্ডই গাণিতিক বা গণনার প্রকারের হয়, তবে সাধারণ গাণিতিক রূপান্তরগুলি (স্ট্যান্ডার্ড রূপান্তরে আচ্ছাদিত) সেগুলিকে একটি সাধারণ প্রকারে রূপান্তর করতে সঞ্চালিত হয়৷
  • যদি উভয় অপারেন্ড পয়েন্টার প্রকারের হয় বা একটি যদি একটি পয়েন্টার টাইপ হয় এবং অন্যটি একটি ধ্রুবক অভিব্যক্তি যা 0 তে মূল্যায়ন করে, পয়েন্টার রূপান্তরগুলি একটি সাধারণ প্রকারে রূপান্তর করতে সঞ্চালিত হয়৷
  • যদি উভয় অপারেন্ডই রেফারেন্স টাইপের হয়, তাহলে রেফারেন্স কনভার্সনগুলিকে সাধারণ টাইপে রূপান্তর করার জন্য সঞ্চালিত হয়।
  • যদি উভয় অপারেন্ড টাইপ ভয়েড হয়, সাধারণ টাইপটি টাইপ ভ্যায়েড৷
  • যদি উভয় অপারেন্ড একই ব্যবহারকারী-সংজ্ঞায়িত প্রকারের হয়, তবে সাধারণ প্রকারটি সেই প্রকার।
  • যদি অপারেন্ডের বিভিন্ন প্রকার থাকে এবং অন্তত একটি অপারেন্ডের ব্যবহারকারী-নির্ধারিত প্রকার থাকে তাহলে সাধারণ প্রকার নির্ধারণ করতে ভাষার নিয়ম ব্যবহার করা হয়। (নীচে সতর্কতা দেখুন।)

উদাহরণ

নেমস্পেস std ব্যবহার করে
#include <iostream>  
using namespace std;  

int main() {  
   int i = 1, j = 2;  
   cout << ( i > j ? i : j ) << " is greater." << endl;  
}

আউটপুট

এটি আউটপুট দেবে −

2 is greater.

  1. C# এ টারনারি অপারেটর কি?

  2. C# এ টারনারি অপারেটর/শর্তাধীন অপারেটর কী?

  3. C# এ টারনারি অপারেটর

  4. পাইথনে টারনারি অপারেটর?