লজিক্যাল অপারেটরের ধারণা সহজ৷ তারা একটি প্রোগ্রামকে একাধিক শর্তের উপর ভিত্তি করে সিদ্ধান্ত নেওয়ার অনুমতি দেয়। প্রতিটি অপারেন্ড একটি শর্ত হিসাবে বিবেচিত হয় যা একটি সত্য বা মিথ্যা মান মূল্যায়ন করা যেতে পারে। তারপর শর্তের মান op1 অপারেটর op2 বা !op1 গ্রুপিংয়ের সামগ্রিক মান নির্ধারণ করতে ব্যবহৃত হয়।
যৌক্তিক OR অপারেটর (||) বুলিয়ান মান সত্য প্রদান করে যদি একটি বা উভয় অপারেন্ড সত্য হয় এবং অন্যথায় মিথ্যা প্রদান করে। মূল্যায়নের পূর্বে অপারেন্ডগুলি নিহিতভাবে টাইপ বুলে রূপান্তরিত হয় এবং ফলাফলটি বুলের টাইপ হয়। যৌক্তিক OR এর বাম-থেকে-ডান সহযোগীতা রয়েছে। লজিক্যাল বা অপারেটরের অপারেন্ডগুলি একই ধরণের হতে হবে না, তবে সেগুলি অবশ্যই অবিচ্ছেদ্য বা পয়েন্টার টাইপের হতে হবে। অপারেন্ডগুলি সাধারণত রিলেশনাল বা সমতার অভিব্যক্তি।
প্রথম অপারেন্ডটি সম্পূর্ণরূপে মূল্যায়ন করা হয় এবং যৌক্তিক বা অভিব্যক্তির মূল্যায়ন চালিয়ে যাওয়ার আগে সমস্ত পার্শ্ব প্রতিক্রিয়া সম্পন্ন হয়। দ্বিতীয় অপারেন্ডটি মূল্যায়ন করা হয় শুধুমাত্র যদি প্রথম অপারেন্ডটি মিথ্যা (0) মূল্যায়ন করে। যৌক্তিক বা অভিব্যক্তি সত্য হলে এটি দ্বিতীয় অপারেন্ডের অপ্রয়োজনীয় মূল্যায়নকে বাদ দেয়।
লজিক্যাল AND অপারেটর (&&) বুলিয়ান মান true প্রদান করে যদি উভয় অপারেন্ড সত্য হয় এবং অন্যথায় মিথ্যা ফেরত দেয়। মূল্যায়নের পূর্বে অপারেন্ডগুলি নিহিতভাবে টাইপ বুলে রূপান্তরিত হয় এবং ফলাফলটি বুলের টাইপ হয়। যৌক্তিক AND এর বাম-থেকে-ডান সহযোগীতা রয়েছে। লজিক্যাল এবং অপারেটরের অপারেন্ডগুলি একই ধরণের হতে হবে না, তবে সেগুলি অবশ্যই অবিচ্ছেদ্য বা পয়েন্টার টাইপের হতে হবে। অপারেন্ডগুলি সাধারণত রিলেশনাল বা সমতার অভিব্যক্তি।
প্রথম অপারেন্ডটি সম্পূর্ণরূপে মূল্যায়ন করা হয় এবং যৌক্তিক এবং অভিব্যক্তির ক্রমাগত মূল্যায়ন করার আগে সমস্ত পার্শ্ব প্রতিক্রিয়া সম্পন্ন হয়। দ্বিতীয় অপারেন্ডটি মূল্যায়ন করা হয় শুধুমাত্র যদি প্রথম অপারেন্ডটি সত্য (অশূন্য) মূল্যায়ন করে। যৌক্তিক এবং অভিব্যক্তি মিথ্যা হলে এই মূল্যায়ন দ্বিতীয় অপারেন্ডের অপ্রয়োজনীয় মূল্যায়নকে বাদ দেয়।
লজিক্যাল নেগেশান অপারেটর (!) এর অপারেন্ডের অর্থ বিপরীত করে। অপারেন্ড অবশ্যই পাটিগণিত বা পয়েন্টার টাইপের হতে হবে (অথবা একটি অভিব্যক্তি যা পাটিগণিত বা পয়েন্টার টাইপের মূল্যায়ন করে)। অপারেন্ডটি অন্তর্নিহিতভাবে টাইপ বুলে রূপান্তরিত হয়। রূপান্তরিত অপারেন্ড মিথ্যা হলে ফলাফল সত্য; রূপান্তরিত অপারেন্ড সত্য হলে ফলাফল মিথ্যা। ফলাফল টাইপ bool.
উদাহরণ
#include<iostream> using namespace std; int main() { bool x = true, y = false; cout << (x || y) << endl; cout << (x && y) << endl; cout << (!x) << endl; return 0; }
আউটপুট
এটি আউটপুট দেবে −
1 0 0
এর কারণ হল 2টির মধ্যে একটি মিথ্যা, তাই এবং মিথ্যা, একটি সত্য তাই বা সত্য এবং সত্য নয় (x) মিথ্যা, অর্থাৎ 0৷