Header Ads

ad728
  • New Updates

    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

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728