Nested if else Statement
Nested if else Statement
जब
एक if
Condition के Statement Block में एक और if
Condition या if else Condition के Statement
Block का प्रयोग किया जाता है , तो इसे if Condition की Nesting करना कहते हैं |
हम
विभन्न if
Conditions की आवश्यकता के अनुसार Nesting कर
सकते हैं , यानी हम एक if Condition के Statement
Block में दूसरा if या if else
Condition का Statement Block , दूसरे में
तीसरा if या if else Condition का Statement
Block , तीसरे में चौथा आदि कितनी भी संख्या में if
Condition Statements Blocks की Nesting कर
सकते हैं | इसका Syntax
निम्नानुसार होता है |
इस Syntax में यह बताया गया है , कि यदि प्रथम if Condition सत्य
होती है , तो प्रोग्राम Control प्रथम if Condition के Statement Block में जाएगा |
वहां
प्रोग्राम Control को दूसरी if Condition मिलेगी | यदि
ये दूसरी if Condition भी सत्य है तो प्रोग्राम Control
, Inner if Condition Statement 2 से Statement n तक के Statements का Execution करेगा |
फिर
Inner
if Statement Block के बाहर आकार Outer if Condition Block के Inner Sequential Statement n का Execution
करेगा और अंत में प्रोग्राम Control दोनों if
Condition Statement Block से बाहर आकर Outer Sequential
Statement a का Execution करेगा |
लेकिन
यदि Inner
if Condition सत्य ना हो , तो प्रोग्राम Control , Inner
else Statement Block के Statement 3 से लेकर Statement
m तक के Statements का Execution करेगा और Inner else से बाहर आकार Outer if
Condition के Inner Statement , Statement n का
Execution करेगा |
अगर
दोनों ही if Conditions असत्य हो जाती है , तो
प्रोग्राम Control सीधे ही Outer else Condition के Statement Block का Execution कर देता है और else Statement Block से बाहर आकार Outer
Sequential Statement a का Execution करता है |
सारांश
के रूप में हम यह कह सकते है कि जब if Condition के Statement Block का Execution होता है , तब else के Statement Block का Execution तभी होता है , जब if Condition असत्य हो जाती है | इसे अच्छी तरह से समझने के लिए हम निम्न उदाहरण
देखते हैं |
Example
तीन
संख्याएं Input करके उनमें से सबसे बड़ी संख्या
ज्ञात करने का एक प्रोग्राम Nested if Condition द्वारा हल
कीजिए |
इस
प्रोग्राम में हमें तीन संख्याएं Input करनी
है , इसलिए हमने int प्रकार के तीन Variable लिए हैं | प्रोग्राम
रन करके हम तीन Input क्रमशः 1, 2 व 3 देते हैं |
अब
देखते हैं कि प्रोग्राम किस प्रकार हमें Output देगा
या Program का Execution Flow किस
प्रकार होगा ?
ये
तीनों मान क्रम से digit1= 1 , digit2 = 2 व digit3
=3 को मिल जाएंगे | अब
प्रथम if
Condition Check होगी , जिसमें यदि digit 1 , digit 2 से बड़ा हो तो प्रोग्राम Control if Condition के Statement
Block में जाएगा |
यहां
digit1
का मान 1 है व ये digit 2 से बड़ा नहीं है क्योंकि digit2 का मान 2 है , इसलिए Outer if Condition असत्य हो जाएगी और
प्रोग्राम Control if Statement Block में नहीं जाएगा ,
बल्कि Outer if Condition के else Statement Block का Execution होता है |
जब
प्रोग्राम Control बाहर से else Statement
Block में प्रवेश करता है , तो वहां उसे एक और if Condition मिलती है | इस
if
Condition के कोष्टक में प्रोग्राम Control Check करता है , कि क्या digit 3 का मान digit 2 के मान से बड़ा है या नहीं |
digit 3 का मान 3 है व digit 2 का मान 2 है इसलिए यहां if Condition सत्य हो जाती है व प्रोग्राम Control else के अंदर के if Condition के Statement Block का Execution कर देता है | इस प्रकार से digit3 सबसे बड़ा है यह Output में Print हो जाता है | प्रोग्राम निम्नानुसार है |
/* Use of Nested if else3 Control Statement Example */
#include<stdio.h>
main()
{
int digit1, digit2, digit3;
printf("\n Enter Three Integers");
scanf("%d %d %d", digit1, digit2, digit3);
if(digit1 > digit2)
{
if(digit1 > digit3)
{
printf("\t Digit1 is Largest");
}
else
{
printf("\t digit3 is largest");
}
}
else
{
if(digit3 > digit2)
{
printf("\t Digit3 is Largest");
}
else
{
printf("\t Digit2 is Largest");
}
}
getch();
}
यदि
हम तीनों Variables को क्रम से 3, 2 व 1 अंक Input कर दें तो
प्रोग्राम द्वारा सबसे बड़ा मान इस प्रकार प्राप्त होगा |
digit1=
3 digit2 = 2 digit3 =1
सबसे
पहले प्रथम if Condition Check होगी , जिसमें ये Check
होगा कि digit1 , digit2 से बड़ा है या नहीं |
यहां
Condition
सत्य होती है और प्रोग्राम Control प्रथम if
Condition के Statement Block में प्रवेश करता
है | यहां वापस Inner
if Condition मिलती है जहां Check होता है ,
कि क्या digit1 , digit3 से बड़ा है या नहीं |
हमने
digit1
का मान सबसे बड़ा रखा है , इसलिए यह Condition भी
सत्य हो जाती है और प्रोग्राम Control inner if के Statement
Block में प्रवेश करता है , और निम्न Statement का Execution कर देता है कि digit1 सबसे बड़ा है |
Digit1
is Largest
अब
यदि हम तीनों Variables को क्रम से 2, 3 व 1 अंक Input
कर दें तो प्रोग्राम द्वारा सबसे बड़ा मान इस प्रकार प्राप्त होगा |
digit1
= 2 digit2 = 3 digit3 = 1
सर्वप्रथम
यह Check
होता है कि digit1, digit2 से बड़ा है या नहीं
यहाँ digit1, digit2 से बड़ा नहीं है |
इसलिए
प्रोग्राम Control , if Statement Block में
प्रवेश नहीं करता , क्योंकि प्रथम If Condition ही असत्य हो
जाती है | इसलिए Outer
if के else का Execution होता है | जैसे
ही प्रोग्राम Control , else Statement Block में
प्रवेश करता है , तो उसे एक और Inner if Condition मिलती है
, जहां ये Check होता है , कि क्या digit3 , digit2 से बड़ा है या नहीं | हमने
digit3
का मान digit2 से छोटा रखा है , इसलिए यह if
Condition असत्य हो जाती है और प्रोग्राम Control इस if Condition को छोड़ कर Inner Else पर चला जाता है और वहां के Statement Block को Execute
कर देता है और निम्न Message Print करता है |
Digit2
is Largest
अब
यदि हम Variables
को निम्नानुसार मान प्रदान कर दें तो निम्न प्रकार से प्रोग्राम का Execution
होगा |
digit1=
2 digit2 = 1 digit3= 3
जब
प्रोग्राम का Execution होगा तब सबसे पहले if Condition में Check किया जाएगा कि क्या digit1 , digit2 से बड़ा है |
यहां
digit1
, digit2 से बड़ा है इसलिए
प्रोग्राम Control , if Condition के Statement Block
में प्रवेश करेगा |
यहां
फिर Check
होगा कि क्या digit1, digit3 से भी बड़ा है या नहीं
| यहां digit1
, digit3 से बड़ा नही है इसलिए inner if Condition असत्य हो जाती है और प्रोग्राम Control , inner else Statement
Block का Execution कर देता है और Output
में हमें निम्न Output प्राप्त हो जाता है
Digit
is Largest
No comments