C भाषा में सशर्त कथन: उदाहरण सहित If, Else और नेस्टेड If
⚡ स्मार्ट सारांश
सी में सशर्त कथन किसी प्रोग्राम के प्रवाह को नियंत्रित करते हैं, जिससे कोड के ब्लॉक केवल तभी निष्पादित होते हैं जब परीक्षण की गई शर्त सत्य साबित होती है, और इस प्रकार if, if-else, नेस्टेड और else-if लैडर संरचनाओं के माध्यम से निर्णय लेने में मदद मिलती है।

सी भाषा में सशर्त कथन क्या है?
C प्रोग्रामिंग में कंडीशनल स्टेटमेंट्स का उपयोग शर्तों के आधार पर निर्णय लेने के लिए किया जाता है। जब तक इन स्टेटमेंट्स के आसपास कोई शर्त नहीं होती, तब तक ये स्टेटमेंट्स क्रमानुसार निष्पादित होते हैं। यदि आप स्टेटमेंट्स के एक ब्लॉक के लिए कोई शर्त लगाते हैं, तो शर्त द्वारा मूल्यांकित परिणाम के आधार पर निष्पादन प्रवाह बदल सकता है। इस प्रक्रिया को C में निर्णय लेना कहा जाता है।
विपरीत C में लूप उस कोड को दोहराने पर, सशर्त कथन एक मार्ग चुनते हैं।
'सी' प्रोग्रामिंग में सशर्त कथन निम्नलिखित दो संरचनाओं की सहायता से संभव हैं:
- यदि कथन
- यदि-अन्यथा कथन
इसे ब्रांचिंग भी कहा जाता है क्योंकि प्रोग्राम मूल्यांकित स्थिति के परिणाम के आधार पर निर्णय लेता है कि किस कथन को निष्पादित करना है।
यदि कथन
यह शक्तिशाली सशर्त कथनों में से एक है। यदि कथन किसी प्रोग्राम के निष्पादन के प्रवाह को संशोधित करने के लिए जिम्मेदार है। यदि कथन का उपयोग हमेशा एक शर्त के साथ किया जाता है। यदि कथन के अंदर किसी भी कथन को निष्पादित करने से पहले शर्त का मूल्यांकन किया जाता है। यदि कथन के लिए वाक्यविन्यास इस प्रकार है:
if (condition)
instruction;
शर्त का मूल्यांकन सत्य या असत्य के रूप में किया जाता है। सत्य हमेशा एक गैर-शून्य मान होता है, और असत्य वह मान होता है जिसमें शून्य होता है। निर्देश एकल निर्देश या घुंघराले ब्रेसिज़ { } द्वारा संलग्न कोड ब्लॉक हो सकते हैं।
निम्नलिखित प्रोग्राम 'C' प्रोग्रामिंग में if कंस्ट्रक्ट के उपयोग को दर्शाता है:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
आउटपुट:
num1 is smaller than num2
उपरोक्त प्रोग्राम दो संख्याओं की समानता की जांच करने के लिए if निर्माण के उपयोग को दर्शाता है।
- उपरोक्त प्रोग्राम में, हमने दो वेरिएबल्स को num1, num2 के साथ क्रमशः 1, 2 मान के साथ आरंभीकृत किया है।
- फिर, हमने परीक्षण-अभिव्यक्ति के साथ if का उपयोग किया है ताकि यह जांचा जा सके कि कौन सी संख्या सबसे छोटी है और कौन सी संख्या सबसे बड़ी है। हमने if निर्माण में एक संबंधपरक अभिव्यक्ति का उपयोग किया है। चूँकि num1 का मान num2 से छोटा है, इसलिए शर्त का मूल्यांकन true होगा।
- इस प्रकार यह कथन को If के ब्लॉक के अंदर प्रिंट करेगा। उसके बाद, नियंत्रण ब्लॉक के बाहर चला जाएगा और प्रोग्राम सफल परिणाम के साथ समाप्त हो जाएगा।
संबंधपरक Operaमरोड़
C भाषा में छह संबंधपरक ऑपरेटर हैं जिनका उपयोग निर्णय लेने और स्थितियों का परीक्षण करने के लिए बूलियन अभिव्यक्ति तैयार करने के लिए किया जा सकता है, जो सही या गलत लौटाता है:
<- से कम<=— से कम या बराबर>- से अधिक>=— से बड़ा या बराबर==- के बराबर!=- असमान
ध्यान दें कि बराबर परीक्षण (==) असाइनमेंट ऑपरेटर (=) से भिन्न है क्योंकि यह सबसे आम समस्याओं में से एक है जिसका सामना प्रोग्रामर को उन्हें मिलाने पर करना पड़ता है।
उदाहरण के लिए:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
आउटपुट:
You succeed
ध्यान रखें कि जो शर्त शून्य से भिन्न मान पर मूल्यांकन की जाती है उसे सत्य माना जाता है।
उदाहरण के लिए:
int present = 1; if (present) printf("There is someone present in the classroom \n");
आउटपुट:
There is someone present in the classroom
यदि-अन्यथा कथन
इफ-एल्स स्टेटमेंट, इफ स्टेटमेंट का विस्तारित रूप है। इफ-एल्स का सामान्य रूप इस प्रकार है:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
इस प्रकार की संरचना में, यदि परीक्षण-अभिव्यक्ति का मान सत्य है, तो कथनों का सत्य ब्लॉक निष्पादित होगा। यदि परीक्षण-अभिव्यक्ति का मान असत्य है, तो कथनों का असत्य ब्लॉक निष्पादित होगा। किसी भी स्थिति में, निष्पादन के बाद, नियंत्रण स्वचालित रूप से 'यदि' ब्लॉक के बाहर आने वाले कथनों में स्थानांतरित हो जाएगा।
निम्नलिखित प्रोग्राम if-else संरचना के उपयोग को दर्शाते हैं:
हम किसी चर को किसी मान से आरंभ करेंगे तथा यह निर्धारित करने के लिए एक प्रोग्राम लिखेंगे कि मान दस से कम है या दस से अधिक।
चलो शुरू करो।
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
आउटपुट:
The value is greater than 10
- हमने 19 मान वाले एक वैरिएबल को इनिशियलाइज़ किया है। हमें 'C' प्रोग्राम का उपयोग करके यह पता लगाना है कि संख्या 10 से बड़ी है या छोटी। ऐसा करने के लिए, हमने if-else निर्माण का उपयोग किया है।
- यहां हमने शर्त num<10 इसलिए रखी है क्योंकि हमें अपने मान की तुलना 10 से करनी है।
- जैसा कि आप देख सकते हैं कि पहला ब्लॉक हमेशा एक सत्य ब्लॉक होता है, जिसका अर्थ है, यदि परीक्षण-अभिव्यक्ति का मान सत्य है तो पहला ब्लॉक जो कि If है, निष्पादित किया जाएगा।
- दूसरा ब्लॉक else ब्लॉक है। इस ब्लॉक में वे कथन होते हैं जो तब निष्पादित होंगे जब परीक्षण-अभिव्यक्ति का मान गलत हो जाता है। हमारे प्रोग्राम में, num का मान दस से अधिक है इसलिए परीक्षण-स्थिति गलत हो जाती है और else ब्लॉक निष्पादित होता है। इस प्रकार, हमारा आउटपुट else ब्लॉक से होगा जो "मान 10 से अधिक है"। if-else के बाद, प्रोग्राम एक सफल परिणाम के साथ समाप्त हो जाएगा।
'सी' प्रोग्रामिंग में हम एक दूसरे के भीतर कई if-else संरचनाओं का उपयोग कर सकते हैं जिन्हें if-else कथनों की नेस्टिंग कहा जाता है।
सशर्त अभिव्यक्तियाँ
इफ-एल्स स्टेटमेंट को व्यक्त करने का एक और तरीका ?: ऑपरेटर का उपयोग करना है। सशर्त अभिव्यक्ति में, ?: ऑपरेटर के साथ इफ और एल्स से संबंधित केवल एक ही स्टेटमेंट होता है।
उदाहरण के लिए:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
आउटपुट:
y =2
नेस्टेड If-else कथन
जब निर्णय की एक श्रृंखला की आवश्यकता होती है, तो नेस्टेड if-else का उपयोग किया जाता है। नेस्टिंग का अर्थ है एक if-else संरचना के भीतर दूसरे if-else संरचना का उपयोग करना।
आइए नेस्टेड if-else के उपयोग को दर्शाने के लिए एक प्रोग्राम लिखें।
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
आउटपुट:
The value is:1
उपरोक्त प्रोग्राम यह जांचता है कि कोई संख्या 10 से कम है या अधिक, तथा नेस्टेड if-else संरचना का उपयोग करके परिणाम प्रिंट करता है।
- सबसे पहले, हमने 1 मान के साथ एक चर num घोषित किया है। फिर हमने if-else निर्माण का उपयोग किया है।
- बाहरी if-else में, दी गई शर्त यह जाँचती है कि कोई संख्या 10 से कम है या नहीं। यदि शर्त सत्य है, तो ही आंतरिक ब्लॉक निष्पादित होगा। इस स्थिति में, शर्त सत्य है, इसलिए आंतरिक ब्लॉक संसाधित होता है।
- आंतरिक ब्लॉक में, हम फिर से एक शर्त लगाते हैं जो यह जांचती है कि हमारे वेरिएबल में मान 1 है या नहीं। जब शर्त सही होती है, तो यह 'इफ' ब्लॉक को प्रोसेस करता है, अन्यथा यह 'एल्स' ब्लॉक को प्रोसेस करता है। इस मामले में, शर्त सही है, इसलिए 'इफ' ब्लॉक निष्पादित होता है और मान आउटपुट स्क्रीन पर प्रिंट हो जाता है।
- उपरोक्त प्रोग्राम एक वेरिएबल का मान प्रिंट करेगा और सफलता के साथ समाप्त हो जाएगा।
मान बदलने का प्रयास करें परिवर्तनशील देखें कि प्रोग्राम कैसे काम करता है।
नोट: नेस्टेड इफ-एल्स में, इंडेंटेशन का विशेष ध्यान रखना आवश्यक है क्योंकि इसमें कई इफ-एल्स संरचनाएं शामिल होती हैं, इसलिए प्रत्येक संरचना को समझना मुश्किल हो जाता है। सही इंडेंटेशन से प्रोग्राम को पढ़ना आसान हो जाता है।
नेस्टेड Else-if कथन
नेस्टेड else-if का प्रयोग तब किया जाता है जब मल्टीपाथ निर्णय की आवश्यकता होती है।
'सी' प्रोग्रामिंग में else-if सीढ़ियों का निर्माण कैसे किया जाता है, इसका सामान्य सिंटैक्स इस प्रकार है:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
इस प्रकार की संरचना को एल्स-इफ लैडर कहा जाता है। यह श्रृंखला आमतौर पर सीढ़ी जैसी दिखती है, इसलिए इसे एल्स-इफ लैडर भी कहते हैं। परीक्षण-अभिव्यक्तियों का मूल्यांकन ऊपर से नीचे की ओर किया जाता है। जब भी कोई सही परीक्षण-अभिव्यक्ति पाई जाती है, तो उससे संबंधित कथन निष्पादित होता है। जब सभी n परीक्षण-अभिव्यक्तियाँ गलत हो जाती हैं, तो डिफ़ॉल्ट एल्स कथन निष्पादित होता है।
आइये एक प्रोग्राम की सहायता से इसकी वास्तविक कार्यप्रणाली देखें।
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
आउटपुट:
First class
उपरोक्त प्रोग्राम टेस्ट में प्राप्त अंकों के अनुसार ग्रेड प्रिंट करता है। हमने उपरोक्त प्रोग्राम में else-if लैडर कंस्ट्रक्ट का उपयोग किया है।
- हमने एक चर को अंकों के साथ आरंभीकृत किया है। else-if सीढ़ी संरचना में, हमने विभिन्न शर्तें प्रदान की हैं।
- चर चिह्नों से प्राप्त मान की तुलना प्रथम शर्त से की जाएगी, क्योंकि यह सत्य है, अतः इससे संबंधित कथन आउटपुट स्क्रीन पर मुद्रित किया जाएगा।
- यदि पहली परीक्षण स्थिति गलत निकलती है, तो इसकी तुलना दूसरी स्थिति से की जाती है।
- यह प्रक्रिया तब तक चलती रहेगी जब तक सभी अभिव्यक्तियों का मूल्यांकन नहीं हो जाता, अन्यथा नियंत्रण एल्स-इफ लैडर से बाहर चला जाएगा और डिफ़ॉल्ट कथन मुद्रित हो जाएगा।
मान को संशोधित करने का प्रयास करें और आउटपुट में परिवर्तन देखें।





