বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/শর্তাধীন অপারেটর

উইকিবই থেকে

টার্নারি অপারেটর একটি শর্তনির্ভর (conditional) অপারেটর, যা সাধারণত if-else স্টেটমেন্টের সংক্ষিপ্ত রূপ হিসেবে ব্যবহৃত হয়। এটি তিনটি অংশ নিয়ে গঠিত: একটি শর্ত, সত্য হলে কার্যকর একটি মান, এবং মিথ্যা হলে কার্যকর আরেকটি মান। এতে তিনটি অংশ থাকে, তাই একে “ট্রিনারী” (tri মানে ‘তিন’) অপারেটর বলা হয়। এটি ইউনারি অপারেটর (যেমন: -a, !a) এবং বাইনারি অপারেটর (যেমন: a + b, a < b) থেকে আলাদা, কারণ এর গঠন ও কাজ ভিন্ন।

সিনট্যাক্স

[সম্পাদনা]

condition ? expression1 : expression2

এখানে:

  • condition বা শর্ত: এটি একটি বুলিয়ান (Boolean) শর্ত — যার ফলাফল সর্বদা সত্য (true) অথবা মিথ্যা (false) হয়।
  • expression1: উপরের শর্তটি সত্য (true) হলে এই অংশটি কার্যকর হবে।
  • expression2: উপরের শর্তটি মিথ্যা (false) হলে এই অংশটি কার্যকর হবে।

উদাহরণ

[সম্পাদনা]

ভ্যারিয়েবল-এ মান অ্যাসাইন করতে ট্রিনারী অপারেটরের ব্যবহার:

int max = (a > b) ? a : b;

ব্যাখ্যা: যদি a, b এর থেকে বড় হয়, তাহলে max ভেরিয়েবলে a এর মান রিটার্ন করবে। অন্যথায়, b এর মান রিটার্ন করবে।

ফাংশন-এ মান রিটার্ন করতে ট্রিনারী অপারেটরের ব্যবহার:

return (number > 0) ? "Positive" : "Non-Positive";

ব্যাখ্যা: number এর মান, 0 এর চেয়ে বড় হলে "Positive" রিটার্ন করবে। অন্যথায়, "Negative" রিটার্ন করবে।

কনসোলে প্রিন্ট করতে ট্রিনারী অপারেটরের ব্যবহার:

cout << ((age > 17) ? "You can vote." : "You can’t vote.");

ব্যাখ্যা: age এর মান 17 এর চেয়ে বড় হলে You can vote. প্রিন্ট করবে, অন্যথায় You can't vote. প্রিন্ট করবে।

বিভিন্ন প্রোগ্রামিং ভাষায় উদাহরণ

[সম্পাদনা]

C, C++, Java, JavaScript, PHP, Swift এবং C# ভাষাগুলোতে টারনারি অপারেটরের জন্য একটি নির্দিষ্ট গঠন (syntax) রয়েছে। তবে Python, Rust, Kotlin এবং Go ভাষাগুলোতে টারনারি অপারেটরের মত আচরণ করতে if expression ব্যবহৃত হয়।

C/C++/C#-এ টারনারি অপারেটর ব্যবহার করে একটি ভেরিয়েবলের মান নির্ধারণের উদাহরণ:

int max = a > b ? a : b;


Java-এ টারনারি অপারেটর ব্যবহার করে একটি ভেরিয়েবলের মান নির্ধারণের উদাহরণ:

int max = a > b ? a : b;


JavaScript/Swift-এ টারনারি অপারেটর ব্যবহার করে একটি ভেরিয়েবলের মান নির্ধারণের উদাহরণ:

let max = a > b ? a : b;


Python-এ টারনারি অপারেটর ব্যবহার করে একটি ভেরিয়েবলের মান নির্ধারণের উদাহরণ:

max = a if a > b else b


PHP-এ টারনারি অপারেটর ব্যবহার করে একটি ভেরিয়েবলের মান নির্ধারণের উদাহরণ:

$max = ($a > $b) ? $a : $b;


Rust-এ টারনারি অপারেটর ব্যবহার করে একটি ভেরিয়েবলের মান নির্ধারণের উদাহরণ:

let max = if a > b { a } else { b };

টারনারি অপারেটর বনাম if-else স্টেটমেন্ট

[সম্পাদনা]

টারনারি অপারেটর এবং if-else স্টেটমেন্ট উভয়ই শর্তনির্ভর সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত নিয়ামক উপাদান। তবে এদের গঠন, পাঠযোগ্যতা এবং প্রয়োগের দিক থেকে গুরুত্বপূর্ণ পার্থক্য রয়েছে।

টারনারি অপারেটর (Ternary Operator) হচ্ছে if-else স্টেটমেন্টের একটি সংক্ষিপ্ত রূপ, যা একক লাইনে শর্ত যাচাই করে মান নির্ধারণে ব্যবহৃত হয়। এ ধরনের অপারেটর সাধারণত সরল শর্ত যাচাই ও মান নিধারণের ক্ষেত্রে উপযোগী। যেহেতু এটি একটি এক্সপ্রেশন হিসেবে ব্যবহৃত হয়, তাই এটি কোড এক্সিকিউশনের সময় নতুন কোনো স্কোপ তৈরি করে না এবং শুধুমাত্র ফাংশন কলের ক্ষেত্রে স্ট্যাক ফ্রেম তৈরি হয়।

অপরদিকে, if-else স্টেটমেন্ট একটি পূর্ণাঙ্গ নিয়ন্ত্রণ কাঠামো (control structure), যা একটি শর্ত সত্য হলে নির্দিষ্ট কোড ব্লক এবং মিথ্যা হলে ভিন্ন কোড ব্লক কার্যকর করে। এটি জটিল যুক্তি, বহু-লাইন কোড এবং অবস্থা নির্ভর সিদ্ধান্ত গ্রহণের জন্য অধিক উপযুক্ত। if-else স্টেটমেন্ট ব্যবহারে কোড পড়তে সহজ হলেও, সরল শর্তের জন্য এটি তুলনামূলকভাবে দীর্ঘ ও ভারী হতে পারে।

টারনারি অপারেটর দিয়ে কনসোলে শর্তনির্ভর বার্তা প্রিন্ট করা:

age > 17 ? cout << "You can vote." : cout << "You can’t vote.";

if-else স্টেটমেন্ট দিয়ে কনসোলে শর্তনির্ভর বার্তা প্রিন্ট করা::

if (age > 17)
{
  cout << "You can vote.";
}
else
{
  cout << "You can’t vote.";
}


বিষয় Ternary Operator if-else Statement
গঠন (Syntax) condition ? expression1 : expression2 if (condition) { ... } else { ... }
দৈর্ঘ্য এক লাইনে লেখা যায় একাধিক লাইন লাগে
পঠনযোগ্যতা ছোট শর্তের জন্য ভালো, তবে বেশি জটিল হলে অস্পষ্ট হয় জটিল লজিকের জন্য বেশি পরিষ্কার
ব্যবহারযোগ্যতা শুধুমাত্র এক্সপ্রেশন বা মান রিটার্নের ক্ষেত্রে যেকোনো ধরণের লজিক ও স্টেটমেন্ট ব্লকের জন্য
নেস্টিং (Nested use) টারনারি অপারেটরের নেস্টিং জটিল ও বিভ্রান্তিকর হতে পারে নেস্টেড if-else তুলনামূলকভাবে সহজ ও পাঠযোগ্য
ভাষা সমর্থন C, C++, Java, C#, JavaScript, PHP, Swift, Rust, Python, Ruby, Perl, Kotlin প্রায় সব ভাষায় সমর্থিত
রিটার্ন ভ্যালু সরাসরি রিটার্ন করে (এক্সপ্রেশন হিসেবেই কাজ করে) ব্লক হিসেবে কাজ করে


সংজ্ঞা

[সম্পাদনা]

টার্নারি অপারেটর টার্নারি অপারেটর একটি শর্তনির্ভর (কন্ডিশনাল) অপারেটর, যা সাধারণত if-else স্টেটমেন্টের সংক্ষিপ্ত রূপ হিসেবে ব্যবহৃত হয়। এটি তিনটি অংশ নিয়ে গঠিত: একটি শর্ত, সত্য হলে কার্যকর একটি মান, এবং মিথ্যা হলে কার্যকর আরেকটি মান।

শর্ত (কন্ডিশন) শর্ত বা কন্ডিশন একটি যুক্তিগত অভিব্যক্তি যা সত্য (true) অথবা মিথ্যা (false) ফলাফল প্রদান করে। এটি প্রোগ্রামের নিয়ন্ত্রণ প্রবাহ নির্ধারণে ব্যবহৃত হয়, বিশেষ করে শর্তাধীন স্টেটমেন্ট ও লুপে।

স্টেটমেন্ট স্টেটমেন্ট হলো একটি সম্পূর্ণ প্রোগ্রামিং নির্দেশনা যা কম্পিউটারকে নির্দিষ্ট একটি কাজ সম্পাদনের নির্দেশ দেয়। এটি প্রোগ্রামের মৌলিক গঠন উপাদান। উদাহরণ: int x = 10;

এক্সপ্রেশন এক্সপ্রেশন হলো এক বা একাধিক অপারেন্ড ও অপারেটরের সমন্বয়ে গঠিত একটি গঠন, যা একটি নির্দিষ্ট মান প্রদান করে। যেমন: 5 + 3, x > 10ইত্যাদি। এক্সপ্রেশন সাধারণত কোনো মান গণনা বা নির্ধারণ করতে ব্যবহৃত হয়।

অপারেন্ড অপারেন্ড হলো সেই মান, ভেরিয়েবল বা এক্সপ্রেশন যেগুলোর উপর কোনো অপারেটর কাজ করে। উদাহরণস্বরূপ, 5 + 3 এক্সপ্রেশনে 5 এবং 3 উভয়ই অপারেন্ড।

অপারেটর অপারেটর হলো একটি প্রতীক বা চিহ্ন যা এক বা একাধিক অপারেন্ডের উপর নির্দিষ্ট কোনো কার্যক্রম সম্পাদন করে। যেমন: গাণিতিক অপারেটর +, -, *, / এবং তুলনামূলক অপারেটর <, > ইত্যাদি।

ডেটা টাইপ ডেটা টাইপ প্রোগ্রামে ব্যবহৃত ডেটা বা ভেরিয়েবলের ধরন নির্ধারণ করে। এটি নির্দেশ করে যে একটি ভেরিয়েবল কী ধরনের মান ধারণ করতে পারে। সাধারণ ডেটা টাইপের উদাহরণ: int, float, char, bool ইত্যাদি।

রেফারেন্স সমূহ

[সম্পাদনা]