switch statement in c in hindi
C में switch स्टेटमेंट if-else-if ladder स्टेटमेंट का एक विकल्प है जो हमें switch variable नामक single variable के अलग-अलग possible values के लिए कई ऑपरेशन निष्पादित करने की अनुमति देता है। यहाँ, हम एक single variable के विभिन्न values के लिए कई cases में विभिन्न statements को परिभाषित कर सकते हैं।
C भाषा में स्विच स्टेटमेंट का सिंटैक्स नीचे दिया गया है:
switch(expression){
case value1:
//code to be executed;
break; //optional
case value2:
//code to be executed;
break; //optional
......
default:
code to be executed if all cases are not matched;
}
Rules for switch statement in C language
1) switch expression integer या character type की होनी चाहिए।
2) case value एक integer या character constant होना चाहिए।
3) case value का उपयोग केवल switch स्टेटमेंट के अंदर किया जा सकता है।
4) switch case में break स्टेटमेंट नहीं होना चाहिए। यह वैकल्पिक है। यदि case में कोई ब्रेक स्टेटमेंट नहीं मिला है, तो सभी cases का मिलान केस के बाद किया जाएगा।
आइए इसे उदाहरणों द्वारा समझने की कोशिश करते हैं। हम मान रहे हैं कि निम्नलिखित variables हैं।
- int x,y,z;
- char a,b;
- float f;
Valid Switch | Invalid Switch | Valid Case | Invalid Case |
switch(x) | switch(f) | case 3; | case 2.5; |
switch(x>y) | switch(x+2.5) | case ‘a’; | case x; |
switch(a+b-2) | case 1+2; | case x+2; | |
switch(func(x,y)) | case ‘x’>’y’; | case 1,2,3; |
Flowchart of switch statement in C
Functioning of switch case statement
सबसे पहले, स्विच स्टेटमेंट में निर्दिष्ट integer expression का मूल्यांकन (evaluate) किया जाता है। यह value तब अलग-अलग cases में दिए गए constant values के साथ एक-एक करके मिलाया जाता है। यदि कोई मिलान पाया जाता है, तो उस case में निर्दिष्ट सभी statements को उस case के बाद उपस्थित सभी cases के साथ निष्पादित किया जाता है, जिसमें डिफ़ॉल्ट statement भी शामिल है। किसी भी दो cases में same values नहीं हो सकते। यदि मिलान किए गए case में एक ब्रेक स्टेटमेंट होता है, तो उसके बाद मौजूद सभी cases को छोड़ दिया जाएगा। अन्यथा, मिलान किए गए case के बाद के सभी cases को निष्पादित किया जाएगा।
आइए सी भाषा स्विच स्टेटमेंट का एक सरल उदाहरण देखें।
#include<stdio.h>
int main(){
int number=0;
printf("enter a number:");
scanf("%d",&number);
switch(number){
case 10:
printf("number is equals to 10");
break;
case 50:
printf("number is equal to 50");
break;
case 100:
printf("number is equal to 100");
break;
default:
printf("number is not equal to 10, 50 or 100");
}
return 0;
}
Output
enter a number:4
number is not equal to 10, 50 or 100
enter a number:50
number is equal to 50
C Switch statement is fall-through
सी भाषा में, switch statement fall-through है; इसका मतलब है कि यदि आप स्विच case में ब्रेक स्टेटमेंट का उपयोग नहीं करते हैं, तो matching case के बाद सभी cases को निष्पादित किया जाएगा।
Nested switch case statement
हम एक स्विच स्टेटमेंट के अंदर जितने चाहें उतने स्विच स्टेटमेंट का उपयोग कर सकते हैं। इस तरह के statements को nested switch case statements कहा जाता है।
#include <stdio.h>
int main () {
int i = 10;
int j = 20;
switch(i) {
case 10:
printf("the value of i evaluated in outer switch: %d\n",i);
case 20:
switch(j) {
case 20:
printf("The value of j evaluated in nested switch: %d\n",j);
}
}
printf("Exact value of i is : %d\n", i );
printf("Exact value of j is : %d\n", j );
return 0;
}
Output
the value of i evaluated in outer switch: 10
The value of j evaluated in nested switch: 20
Exact value of i is : 10
Exact value of j is : 20