सी में सशर्त ऑपरेटर
सशर्त ऑपरेटर को एक टर्नरी ऑपरेटर के रूप में भी जाना जाता है। सशर्त कथन निर्णय लेने वाले कथन हैं जो अभिव्यक्ति के उत्पादन पर निर्भर करता है। यह दो प्रतीकों द्वारा दर्शाया गया है, अर्थात्, '?' और ':'। जैसा कि सशर्त ऑपरेटर तीन ऑपरेंड पर काम करता है, इसलिए इसे टर्नरी ऑपरेटर के रूप में भी जाना जाता है। सशर्त ऑपरेटर का व्यवहार 'IF-ELSE' कथन के समान है, जैसा कि 'IF-ELSE' कथन भी एक निर्णय लेने वाला बयान है।
कैसे लिखें
ABaivyaKtaiR1? ABaivyaKtaiR2: ABaivyaKtaiR3
उपरोक्त वाक्यविन्यास का अर्थ।
उपरोक्त वाक्यविन्यास में, अभिव्यक्ति 1 एक बूलियन स्थिति है जो या तो सही या गलत मूल्य हो सकती है। यदि अभिव्यक्ति 1 एक सही मूल्य में परिणाम करता है, तो अभिव्यक्ति 2 निष्पादित करेगा। अभिव्यक्ति 2 को केवल तभी सच कहा जाता है जब यह एक गैर-शून्य मान लौटाता है। यदि अभिव्यक्ति 1 गलत मान लौटाता है तो एक्सप्रेशन 3 निष्पादित करेगा। अभिव्यक्ति 3 को केवल तब गलत कहा जाता है जब यह शून्य मान लौटता है।
आइए एक उदाहरण के माध्यम से टर्नरी या सशर्त ऑपरेटर को समझें
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ Aayau; // car oaaeSanaa
mauDznama("pzavaeSa krnaa Aapaka Aayau");
saMgazhitaF("%paunaZ",&Aayau); // laaparvaah UpayaaegaktaaZ EnapauT kurftae Aayau car
(Aayau>=18)? (mauDznama("yaaegya ke laiP mataDana")) : (mauDznama("nahiM yaaegya ke laiP mataDana")); // saSataZ saMcaalak
naivaZtanama 0;
}
उपरोक्त कोड में, हम उपयोगकर्ता के 'आयु' के रूप में इनपुट ले रहे हैं। इनपुट लेने के बाद, हमने एक सशर्त ऑपरेटर का उपयोग करके स्थिति को लागू किया है। इस स्थिति में, हम उपयोगकर्ता की उम्र की जाँच कर रहे हैं। यदि उपयोगकर्ता की आयु 18 से अधिक या उसके बराबर है, तो स्टेटमेंट 1 निष्पादित करेगा, अर्थात्, (प्रिंटफ ("वोटिंग के लिए पात्र")) अन्यथा, स्टेटमेंट 2 निष्पादित करेगा, अर्थात, (प्रिंटफ ("वोटिंग के लिए पात्र नहीं"))।
जैसा कि हम उपरोक्त दो आउटपुट से देख सकते हैं कि यदि स्थिति सत्य है, तो स्टेटमेंट 1 को निष्पादित किया जाता है; अन्यथा, स्टेटमेंट 2 को निष्पादित किया जाएगा। अब तक, हमने देखा है कि सशर्त ऑपरेटर स्थिति की जांच कैसे करता है और स्थिति के आधार पर, यह बयानों को निष्पादित करता है। अब, हम देखेंगे कि एक वैरिएबल को मान असाइन करने के लिए एक सशर्त ऑपरेटर का उपयोग कैसे किया जाता है।
#samaahitaF <PsaTidiAayaAae.Pca>
paunaZ mauqyaF()
{
paunaZ P=5,bai; // car oaaeSanaa
bai=((P==5)?(3):(2)); // saSataZ saMcaalak
mauDznama(" kimata ka 'b' car hI : %paunaZ",bai);
naivaZtanama 0;
}
उपरोक्त आउटपुट से पता चलता है कि 'बी' चर का मान 3 है क्योंकि 'ए' चर का मान 5 के बराबर है। जैसा कि हम जानते हैं कि सशर्त ऑपरेटर और 'इफ-एल्स' का व्यवहार समान है, लेकिन उनके पास कुछ अंतर हैं। आइए उनके मतभेदों को देखें। एक सशर्त ऑपरेटर एक एकल प्रोग्रामिंग स्टेटमेंट है, जबकि 'IF-ELSE' स्टेटमेंट एक प्रोग्रामिंग ब्लॉक है जिसमें बयान कोष्ठक के तहत आते हैं। एक सशर्त ऑपरेटर का उपयोग चर को मान असाइन करने के लिए भी किया जा सकता है, जबकि असाइनमेंट उद्देश्य के लिए 'IF-ELSE' स्टेटमेंट का उपयोग नहीं किया जा सकता है। यह बयानों को निष्पादित करने के लिए उपयोगी नहीं है जब कथन कई होते हैं, जबकि कई कथनों को निष्पादित करते समय 'IF-ELSE' कथन अधिक उपयुक्त साबित होता है। नेस्टेड टर्नरी ऑपरेटर अधिक जटिल है और इसे आसानी से डिबग नहीं किया जा सकता है, जबकि नेस्टेड 'इफ-एल्स' स्टेटमेंट को पढ़ना और बनाए रखना आसान है।