Dark Mode Logo (Optional)

Dark Mode Logo (Optional)

Switch Statement



Switch Statement

जब हम किसी प्रोग्राम में ढेर सारी if Conditions का प्रयोग करते हैं , तो प्रोग्राम बहुत जटिल हो जाता है | इस वजह से प्रोग्राम को समझना व पढ़ना काफी मुश्किल हो जाता है | इस कठिनाई से बचने के लिए हम एक और Control Statement switch का प्रयोग करते हैं |

जिस तरह if Condition एक Two – Way Condition Statement है , उसी तरह switch एक Multi – way condition Statement है | यह बिल्कुल if – else if – else के जैसा ही काम करता है | इसकी सामान्य संरचना निम्नानुसार होती है |

कार्यप्रणाली – इस संरचना में value 1, value 2 .. value n expression या variable है , जिन्हें case label कहा जाता है | ये सभी मान अलग – अलग  होने चाहिये | Statement or Statement Block 1 , Statement or Statement Block 2 , … Statement or Statement block n Statements का समूह है | इन Statements के समूहों में एक से अधिक Statements होने पर भी मंझले कोष्टक की जरुरत नहीं होती है | फिर भी यदि ये कोष्टक लगा दिए जाएं तो भी “C” Compiler कोई परेशानी नहीं करता है |

Switch Statement के Execution के लिए सर्वप्रथम Variable या expression के मान की तुलना क्रम से एक – एक करके Value 1 , Value 2 …. Value n से की जाती है और जहां भी ये मान मिल जाता है , उस case Label के अनुसार लिखे गए Statements का Execution हो जाता है |

इस संरचना में सभी Statements Block के बाद break लिखा जाता है | यह Statements के समूह का अंत दर्शाता है व Statements Block के Execution के बाद प्रोग्राम Control के Switch Statement के बाहर Sequential Statement a पर ले जाता है |

यदि यह break न लिखा जाए तो Statement Block से Execution के बाद भी Program control Switch Statement Block के अंदर ही रहता है और आगे के Statement का Execution करता रहता है | जब तक इसे कोई Break Statement नहीं मिल जाता , तब तक ये सभी Labels के Statement Block का Execution करता रहता है |

Switch Statement के लिए दी गई संरचना में default case label एक Optional Label है | यदि यह switch Statement में होता है व expression या Variable का मान switch Statement में दिए गए किसी भी Statement से मेल नहीं करता , तो Program Control default Case label पर चला जाता है और इसके अंतर्गत दिए गए Statement का Execution कर देता है | Switch Case labels को हम किसी भी क्रम में रख सकते हैं , यानी चौथे स्थान का Case प्रथम स्थान पर, प्रथम स्थान का case तीसरे स्थान पर | default Statement को भी किसी भी स्थान पर रख सकते हैं |

अब हम पिछले प्रोग्राम को ही switch Statement द्वारा लिखते हैं | इस प्रोग्राम में दो Variable define किए गए हैं | एक Variable marks का Input लेता है | फिर marks में 10 का भाग दिया है ताकि कुल 10 Situation हो जाए और प्राप्त मान को a को assign किया गया है |  अब जब कोई मान माना कि हमने 55 Input किया तो 55/10 = 5 a को assign हो जाता है |

ध्यान दे कि यहां 55/10 का मान 5.5 होता है , लेकिन a int प्रकार का variable है , इसलिए  यह दशमलव के भाग को छोड़ देता है और केवल पूर्णांक संख्या को ही accept करता है | अब switch Statement में  a का मान check होता है कि a का मान किस case से मेल कर रहा है | क्योंकि a का मान 5 है |

इसलिए switch Statement के case 5 के Statement Block का Execution हो जाता है और Output में SECOND DIVISION print हो जाता है | Statement Print होते ही Program Control को break मिलता है और Program Control Switch Statement Block से बाहर आ जाता है | यदि हम कोई ऐसा अंक जो कि 39 से कम है , देते हैं तो कोई case मेल नहीं करता और switch के default  statement का Execution हो जाता है |

ये प्रोग्राम बना कर विभन्न मान दें और प्रोग्राम की testing करें | जब प्रोग्राम को Develop करके पहले से ज्ञात विभन्न मानों द्वारा प्रोग्राम का Execution करके प्राप्त होने वाले Output को Accuracy के लिए  check किया जाता है , तो इस प्रक्रिया को प्रोग्राम की Testing करना कहते हैं |

चलिए , अब हम switch Statement को समझने के लिए एक उदाहरण Program बनाते हैं | ये उदाहरण Program किसी Student के Marks के उधार पर Student का Grade Output में Display करता है | Program निम्नानुसार है |

  
/* Example of Switch Condition Statement */

#include<stdio.h>
main()
{
	int marks , a;
	
	
	printf("\n Enter Marks :");
	scanf("%d",&marks);
	
	a = marks/10;
	
	switch(a)
	{
		case 10:
		case 9:
		case 8:
			printf("HONOURS");
			break;
			 case 7:
			 case 6:
				printf("FIRST DIVISION");
				break;
				 case 5:
					printf("SECOND DIVISION");
					break;
					 case 4:
						printf("THIRD DIVISION");
						break;
						  default:
							printf("FAIL");
							break;
	}
	getch();
}

Example

एक प्रोग्राम लिखो जिसमें User जिस भी रंग का प्रथम अक्षर Input करें .. Output में उस रंग का नाम आ जाए |

 

  
#include<stdio.h>
main()
{
	char a;
	
	printf("Enter  the character:\n");
	scanf("%c",&a);
	fflush(stdin);
	
	switch(a)
	{
		case 'R':
		case 'r':
			printf("\n Color is red\n");
			break;
				
			case 'G':
			case 'g':
				printf("\n Color is green\n");
				break;
						
				case 'b':
				case 'B':
					printf("\n Color is blue\n");
					break;
								
					default:
						printf("Color is found");
						break;
								
	}
	getch();
}

You may like these posts:

No comments:

Post a Comment