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 एक प्रोग्राम
लिखो जिसमें User जिस भी रंग का प्रथम अक्षर Input
करें .. Output में उस रंग का नाम आ जाए |
/* 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();
}
#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();
}
No comments