Nested If Statements in C Language

Nested If Statements in C: जब एक 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 निम्नानुसार होता है:

if ( Expression and Condition 1 )
{
	if ( Expression and Condition 2 )
	{ 
		Statement 1;
		Statement 2;
		"	"	"
		Statement l;
	}
	else
	{
		Statement 3;
		Statement 4;
		"	"	"
		Statement m;
	}
	Inner Sequential Statement n;
}
else
{
	Statement 5;
	Statement 6;
	"	"	"
	Statement o;
}
Outer Sequential Statement a;

इस Syntax में यह बताया गया है, कि यदि प्रथम if Condition सत्‍य होती है, तो प्रोग्राम Control प्रथम if Condition के Statement Block में जाएगा। वहां प्रोग्राम Control को दूसरी if Condition मिलेगी। यदि ये दूसरी if Condition भी सत्‍य है, तो प्रोग्राम Control, Inner if Condition Statement Block में जाएगा और Statement 1, Statement2 से 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 नहीं होता, और 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 होगी, जिसमें यदि digit1, digit 2 से बडा हो तो प्रोग्राम Control if Condition के Statement Block में जाएगा।

यहां digit1 का मान 1 है व ये digit2 से बडा नहीं है क्योंकि digit2 का मान 2 है, इसलिए Outer if Condition असत्‍य हो जाएगी और प्रोग्राम Control  if Statement Block में नहीं जाएगा, बल्कि Outer if Condition के else Statement Block का Execution होगा, क्योंकि जब if Condition असत्‍य हो जाती है, तब else Statement Block का Execution होता है।

जब प्रोग्राम Control बाहर के else Statement Block में प्रवेश करता है, तो वहां उसे एक और if Condition मिलती है। इस if Condition के कोष्‍ठक में प्रोग्राम Control check करता है, कि क्या digit3 का मान digit2 के मान से बडा है या नहीं।

digit3 का मान 3 है व digit2 का मान 2 है इसलिए यहां if Condition सत्‍य हो जाती है व प्रोग्राम Control else के अन्दर के if Condition के Statement Block का Execution कर देता है। इस प्रकार से digit3 सबसे बडा है यह Output में Print हो जाता है। प्रोग्राम निम्नानुसार है:

Program
	/* Use of Nested if  else3 Control Statement Example */
	#include<stdio.h>
	main()
	{
		int digit1, digit2, digit3;
		clrscr()

		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 से भी बडा है या नहीं। यहां ditit1, digit3 से बडा नहीं है इसलिए inner If Condition असत्‍य हो जाती है और प्रोग्राम Control, inner else statement Block का Execution कर देता है और Output में हमें निम्न Output प्राप्त हो जाता है:

      Digit3 is Largest

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS