Switch Statement in C

Switch statement என்பது long if statement, அதாவது அதிகமான if statements-களுக்கு பதிலாக பயன்படுத்தபடுகிறது. இதில் case என்ற keyword பயன்படுத்தி, ஒவொரு condition-களையும் check செய்து அதற்க்கு ஏற்றவாறு program statements-களை run செய்ய அனுமதிக்கிறது.

Default statement

Switch expression-ல் உள்ள value எந்த case உடனும் பொருந்தவில்லை எனில் அதை வெளிபடுதவே இந்த default statement பயன்படுகிறது.

Note: switch(expression)-ல் உள்ள value எந்த case-உடன் போருந்துகின்றதோ அந்த case மட்டுமே run ஆகும். ஒருவேலை அந்த case-ல் break statement பயன்படுத்தாமல் இருந்திருந்தால் அதற்க்கு அடுத்த case-ம் run ஆகும்.

Syntax for Switch Statement

switch(expression){
    case label1 :
        ....
        ....
        break;
    case label2 :
        ....
        ....
        break;
   case label3 :
        ....
        ....
        break;
    default:
        ....
        ....
        break;

    }

Rules for switch Statement

  1. ஒரே Label name-ஐ மீண்டும் பயன்படுத்தகூடாது.
  2. Case-க்கும் Label-க்கும் இடையே space, Label name-க்கு அடுத்து Colon(:) நிச்சயம் இடம் பெற்றிருக்க வேண்டும்.
  3. label-ன் value அதாவது switch(expression)-ன் value Integer அல்லது Character மட்டுமே எடுத்க்கொள்ளும்.
  4. label-ன் value ஒருபோதும் floating point number-ஐ பயன்படுத்த கூடாது.
  5. Switch case-ல் Relational operator-ஐ பயன்படுத்த கூடாது. example (a>10),(x==100),(yam>=3),.. etc., போன்றவற்றை பயன்படுத்த கூடாது.
  6. Switch case-ல் ஒரே ஒரு default label மட்டுமே இருக்க வேண்டும். இதை switch block-ன் உள்ளே எங்கு வேண்டுமானாலும் பயன்படுத்தலாம். இதை கட்டாயம் பயன்படுத்த வேண்டும் என்ற அவசியம் இல்லை (optional).
  7. ஒவ்வொரு switch case-லும் break statement இடம் பெறவேண்டும். இல்லையெனில் அடுத்த break statement எங்கு இடம் பெற்றிருக்குமோ அது வரை உள்ள அனைத்து code-ஐயும் run செய்துவிடும்.
  8. Nesting ( switch within switch ) பயன்படுத்தலாம்.

Switch Statement Example

Qn: Write the program for find week days using switch statement

#include<stdio.h>
#include<conio.h>

int main(){
int number;
printf("Enter a number between (1 to 7): ");
scanf("%d",&number);

switch(number){
    case 1:
        printf("Sunday\n");
        break;
    case 2:
        printf("Monday\n");
        break;
    case 3:
        printf("Tuesday\n");
        break;
    case 4:
        printf("Wednesday\n");
        break;
    case 5:
        printf("Thursday\n");
        break;
    case 6:
        printf("Friday\n");
        break;
    case 7:
        printf("Saturday\n");
        break;
    default:
        printf("This is invalid number to find week days");
        break;
}

return 0;
}

Output 1:

Enter a number between (1 to 7): 3

Tuesday

Output 2:

Enter a number between (1 to 7): -3

This is invalid number to find week days

Switch case has no break statement

#include<stdio.h>
#include<conio.h>
int main(){

int yam;
printf("Enter a number: ");
scanf("%d",&yam);
switch(yam){
	
    case 1:
        printf("First Class\n"); // no break
    case 2:
        printf("Second Class\n"); // no break
    case 3:
        printf("Third Class\n"); // no break
    default:
        printf("Re-appear\n");
        break;
}

return 0;
}

Output case-1:

Enter a number: 3

Third Class

Re-appear

Output case-2:

Enter a number: 1

First Class

Second Class

Third Class

Re-appear

Output case-3:

Enter a number: 10

Re-appear

Difference between switch and if

  1. if statements-ல் float conditions evaluvate செய்யமுடியும், ஆனால் switch statements-ல் முடியாது.
  2. if statement-ல் relational operators-ஐ evaluate செய்யமுடியும், ஆனால் switch statements-ல் முடியாது. i.e they are not allowed in switch statement.

Comments