Pages

Saturday, 23 July 2016

Conditional Operator [Ternary Operator] in C



कंडीशनल आपरेटर :

कम्प्युटर प्रोग्रामिंग मे ? : इस सिंबल को टर्नरी या कंडीशनल आपरेटर कहते हैं। इस आपरेटर का जन्म 1960 की एक मशहूर प्रोग्रामिंग सीपीएल मे हुआ था जिसे बाद के कई प्रोग्रामिंग मे उपयोग किया गया। यह किसी शर्त (Condition) को जाँचने का बेसिक आपरेटर हैं। कई टर्नरी आपरेटर को एक टर्नरी आपरेटर मे उपयोग किया जा सकता हैं। इस आपरेटर के उपयोग का सिंटेक्स निम्न हैं।

[variable]  = [condition] ? [statement 1] : [statement 2]

ऊपर दिया expression ternary ऑपरेटर का हैं। variable एक इकाई है जो वैल्यू को होल्ड करेगा जो की शर्त के आधार पर टर्नरी आपरेटर से प्राप्त होगा, कंडीशन सेक्शन मे शर्त लिखा जाएगा, जिसके सत्य होने मे statement 1 क्रियान्वित होगा और परिणाम को variable मे स्टोर कर देगा, अगर शर्त गलत होती हैं तो statement 2 क्रियान्वित होगा और उसका परिणाम variable मे स्टोर होगा।

जैसे माना -  a = 12 हैं
            b = 16 हैं
            c = 0 हैं।

अब एक एक्स्प्रेश्न लिखते हैं c = a > b ? a : b  तो आपको इस expression से क्या समझ मे आता हैं, और परिणाम क्या होगा?

ऊपर दिये उदाहरण मे तीन वेरिएबल हैं, a, b और c (वेरिएबल मतलब वैल्यू को होल्ड करने वाला इकाई) हैं a का मान 12, b का मान 16 तथा c का मान शून्य हैं। इसके बाद a > b यह एक शर्त हैं जिसे जांचा जा रहा है की क्या a, b से बड़ा हैं? पर b की वैल्यू a से बड़ी हैं। इस लिए दूसरा statement execute होगा जो : कॉलन के बाद लिखा हैं। कॉलन के बाद b लिखा हैं जिसका मतलब हैं c = b होगा और सी की वैल्यू 16 हो जाएगी। अब उदाहरण 2 को देखते हैं

उदाहरण 2 :


ऊपर दिये गए उदाहरण मे आप टर्नरी expression देख रहे हैं जिनहे हरे बक्से से घेरा गया हैं, जो टर्नरी के अलग सेक्शन के बारे मे बता रहा हैं। a>b वाला सेक्शन मे कंडीशन लिखा हुआ हैं, क्योंकि a =15 हैं जो की b की वैल्यू से ज्यादा हैं। जब भी कंडीशन सही होगी तो statement 1 क्रियान्वित होगा, ऊपर दिये उदाहरण मे स्टेटमेंट 1 मे सिर्फ a लिखा हैं इसका मतलब हैं की a की जो भी वैल्यू हैं वह c मे होल्ड हो जाएगी। जिसकी वजह से आउटपुट आयेगा c = 15, अब एक और उदाहरण देखते हैं। इसमे नेस्टेड टर्नरी (एक टर्नरी के अंदर दूसरा टर्नरी आपरेटर का उपयोग) का उपयोग सीखेंगे।


इस उदाहरण मे हम तीन वेरिएबल मे से सबसे बड़े वेरिएबल को पता करेंगे, पर टर्नरी आपरेटर केवल एक कंडीशन को जांच सकते है। और तीन वेरिएबल मे सबसे बड़े वेरिएबल को पता करने के लिए कम से कम दो कंडीशन जाँचना होगा। यहाँ पर ध्यान रहे की टर्नरी मे दो या दो से ज्यादा शर्त जाँचना बहुत ही कॉम्प्लेक्स (जटिल) हो जाता हैं। इस लिए जटिलता को हटाने के लिए हमने आप को समझने के उद्देश्य से नीचे दिये एक्स्प्रेश्न के हर सेक्शन को रंग भरे बक्से से अलग कर रखा हैं।

हरे रंग का बक्सा (box) मुख्य टर्नरी आपरेटर को दर्शा रहा हैं। जिसमे पहले हिस्से मे हम a को b और c से तुलना कर रहे हैं   यहा पर दो शर्ते हैं जिनहे && आपरेटर की सहायता से जोड़ कर एक शर्त मे बदल दिया गया हैं। अगर यह कंडीशन सही हो जाती हैं तो हरे बॉक्स मे दिख रहा   statement 1 क्रियान्वित होगा। और d वेरिएबल मे होल्ड हो जाएगा।

परंतु कंडीशन  false हो जाए तब हरे बॉक्स मे दिख रहा स्टेटमेंट 2  क्रियान्वित होगा, यहाँ ध्यान देने वाली बात यह हैं की स्टेटमेंट 2 के अंदर एक और टर्नरी आपरेटर उपयोग किया गया हैं। जिसके सेक्शन को हम लाल रंग के बॉक्स से दिखा रहे हैं। जिसमे आप देख सकते हैं की इसका पहला सेक्शन एक शर्त हैं , जिसमे b को c से तुलना (कॉम्पेयर) किया जा रहा हैं। अगर कंडीशन सही होती हैं तो लाल रंग मे लिखा स्टेटमेंट 1 क्रियान्वित होगा और कंडीशन गलत होती हैं तो लाल रंग मे लिखा स्टेटमेंट 2 क्रियान्वित होगा।

उयपर दिये उदाहरण का परिणाम B is Biggest Value प्रिंट होगा, क्योंकि b का मान बाकी सभी वेरिएबल से ज्यादा हैं।

No comments:
Write comments

Popular Posts

Recommended Posts ×