लॉजिकल ऑपरेटरों की अवधारणा सरल है। वे एक कार्यक्रम को कई शर्तों के आधार पर निर्णय लेने की अनुमति देते हैं। प्रत्येक ऑपरेंड को एक शर्त माना जाता है जिसका मूल्यांकन सही या गलत मान पर किया जा सकता है। फिर शर्तों के मान का उपयोग op1 ऑपरेटर op2 या !op1 ग्रुपिंग के समग्र मूल्य को निर्धारित करने के लिए किया जाता है।
तार्किक OR ऑपरेटर (||) बूलियन मान को सही लौटाता है यदि या तो या दोनों ऑपरेंड सत्य हैं और अन्यथा गलत लौटाते हैं। मूल्यांकन से पहले ऑपरेंड को टाइप बूल में बदल दिया जाता है, और परिणाम बूल प्रकार का होता है। तार्किक OR में बाएँ-से-दाएँ सहबद्धता है। लॉजिकल या ऑपरेटर के ऑपरेंड एक ही प्रकार के नहीं होने चाहिए, लेकिन वे इंटीग्रल या पॉइंटर प्रकार के होने चाहिए। ऑपरेंड आमतौर पर संबंधपरक या समानता के भाव होते हैं।
पहले ऑपरेंड का पूरी तरह से मूल्यांकन किया जाता है और तार्किक या अभिव्यक्ति के मूल्यांकन को जारी रखने से पहले सभी दुष्प्रभाव पूरे हो जाते हैं। दूसरे ऑपरेंड का मूल्यांकन केवल तभी किया जाता है जब पहला ऑपरेंड असत्य (0) का मूल्यांकन करता है। यह तार्किक OR व्यंजक के सत्य होने पर दूसरे ऑपरेंड के अनावश्यक मूल्यांकन को समाप्त करता है।
तार्किक और ऑपरेटर (&&) बूलियन मान को सत्य लौटाता है यदि दोनों ऑपरेंड सत्य हैं और अन्यथा गलत हैं। मूल्यांकन से पहले ऑपरेंड को टाइप बूल में बदल दिया जाता है, और परिणाम बूल प्रकार का होता है। तार्किक और में बाएं से दाएं सहयोगीता है। लॉजिकल और ऑपरेटर के ऑपरेंड एक ही प्रकार के नहीं होने चाहिए, लेकिन वे इंटीग्रल या पॉइंटर प्रकार के होने चाहिए। ऑपरेंड आमतौर पर संबंधपरक या समानता के भाव होते हैं।
पहले ऑपरेंड का पूरी तरह से मूल्यांकन किया जाता है और तार्किक और अभिव्यक्ति के मूल्यांकन को जारी रखने से पहले सभी दुष्प्रभावों को पूरा किया जाता है। दूसरे ऑपरेंड का मूल्यांकन केवल तभी किया जाता है जब पहला ऑपरेंड सत्य (गैर-शून्य) का मूल्यांकन करता है। तार्किक और अभिव्यक्ति के गलत होने पर यह मूल्यांकन दूसरे ऑपरेंड के अनावश्यक मूल्यांकन को समाप्त कर देता है।
लॉजिकल नेगेशन ऑपरेटर (!) अपने ऑपरेंड के अर्थ को उलट देता है। संकार्य अंकगणित या सूचक प्रकार का होना चाहिए (या एक अभिव्यक्ति जो अंकगणित या सूचक प्रकार का मूल्यांकन करती है)। ऑपरेंड को स्पष्ट रूप से टाइप बूल में बदल दिया जाता है। परिणाम सत्य है यदि परिवर्तित ऑपरेंड गलत है; परिणाम गलत है यदि परिवर्तित ऑपरेंड सत्य है। परिणाम बूल प्रकार का है।
उदाहरण
#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.