Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
633 views

Switch Case in C Programming

A switch statement tests the value of a variable and compares it to multiple case values. When a match is found, the code block for that case is executed. Each case has a unique label and must end with a break statement. The optional default case runs if no other matches are made. Switch statements help reduce complexity when multiple conditional paths are involved compared to nested if/else statements.

Uploaded by

Amel KB
Copyright
© © All Rights Reserved
0% found this document useful (0 votes)
633 views

Switch Case in C Programming

A switch statement tests the value of a variable and compares it to multiple case values. When a match is found, the code block for that case is executed. Each case has a unique label and must end with a break statement. The optional default case runs if no other matches are made. Switch statements help reduce complexity when multiple conditional paths are involved compared to nested if/else statements.

Uploaded by

Amel KB
Copyright
© © All Rights Reserved
You are on page 1/ 10

Switch-case statement

What is a Switch Statement?


A switch statement tests the value of a variable and compares it with multiple
cases. Once the case match is found, a block of statements associated with
that particular case is executed.

Each case in a block of a switch has a different name/number which is referred


to as an identifier. The value provided by the user is compared with all the
cases inside the switch block until the match is found.

If a case match is found, then the default statement is executed, and the
control goes out of the switch block.

A general syntax of how switch-case is implemented in a ‘C’ program is as


follows:

<pre>switch( expression )

case value-1:

Block-1;

Break;

case value-2:

Block-2;

Break;

case value-n:

Block-n;
Break;

default:

Block-1;

Break;

Statement-x; </pre>

 The expression can be integer expression or a character expression.


 Value-1, 2, n are case labels which are used to identify each case
individually. Remember that case labels should not be same as it may
create a problem while executing a program. Suppose we have two
cases with the same label as ‘1’. Then while executing the program, the
case that appears first will be executed even though you want the
program to execute a second case. This creates problems in the program
and does not provide the desired output.
 Case labels always end with a colon ( : ). Each of these cases is associated
with a block.
 A block is nothing but multiple statements which are grouped for a
particular case.
 Whenever the switch is executed, the value of test-expression is
compared with all the cases which we have defined inside the switch.
Suppose the test expression contains value 4. This value is compared
with all the cases until case whose label four is found in the program. As
soon as a case is found the block of statements associated with that
particular case is executed and control goes out of the switch.
 The break keyword in each case indicates the end of a particular case. If
we do not put the break in each case then even though the specific case
is executed, the switch will continue to execute all the cases until the
end is reached. This should not happen; hence we always have to put
break keyword in each case. Break will terminate the case once it is
executed and the control will fall out of the switch.
 The default case is an optional one. Whenever the value of test-
expression is not matched with any of the cases inside the switch, then
the default will be executed. Otherwise, it is not necessary to write
default in the switch.
 Once the switch is executed the control will go to the statement-x, and
the execution of a program will continue.

Following diagram illustrates how a case is selected in switch case:

Figure 1How Switch Works


Following program illustrates the use of switch:
<pre>

#include <stdio.h>

int main() {

int num = 8;

switch (num) {

case 7:

printf("Value is 7");

break;

case 8:

printf("Value is 8");

break;

case 9:

printf("Value is 9");

break;

default:

printf("Out of range");

break;

}
return 0;

}</pre>

Output:

<pre>Value is 8

</pre>

1. In the given program we have initialized a variable num with value 8.


2. A switch construct is used to compare the value stored in variable num
and execute the block of statements associated with the matched case.
3. In this program, since the value stored in variable num is eight, a switch
will execute the case whose case-label is 8. After executing the case, the
control will fall out of the switch and program will be terminated with
the successful result by printing the value on the output screen.

Try changing the value of variable num and notice the change in the output.
For example, we consider the following program which defaults:
<pre>
#include <stdio.h>
int main() {
int language = 10;
switch (language) {
case 1:
printf("C#\n");
break;
case 2:
printf("C\n");
break;
case 3:
printf("C++\n");
break;
default:
printf("Other programming language\n");}}</pre>

Output:

<pre> Other programming language</pre>

When working with switch case in C, you group multiple cases with unique labels. You need to
introduce a break statement in each case to branch at the end of a switch statement.

The optional default case runs when no other matches are made.

We consider the following switch statement:

<pre>
#include <stdio.h>
int main() {
int number=5;
switch (number) {
case 1:
case 2:
case 3:
printf("One, Two, or Three.\n");
break;
case 4:
case 5:
case 6:
printf("Four, Five, or Six.\n");
break;
default:
printf("Greater than Six.\n");}}</pre>
Output:

<pre> Four, Five, or Six.</pre>

Nested Switch
In C , we can have an inner switch embedded in an outer switch.Also, the case constants of the inner
and outer switch may have common values and no conflicts will be found.

We considere the following program which the user to type his own ID, if the ID is valid it will ask
him to enter his password, if the password is correct the program will print the name of the user,
otherwise ,the program will print Incorrect Password and if the ID does not exist , the program will
print Incorrect ID

<pre>
#include <stdio.h>
int main()
{
int ID=500;
int password=000;
printf("Plese Enter Your ID:\n ");
scanf("%d",&ID);
switch(ID)
{
case 500:
printf("Enter your password:\n ");
scanf("%d",&password);
switch(password)
{
case 000:
printf("Welcome Dear Programmer\n");
break;
default :
printf("incorrect password");
break;
}
break;
default :
printf("incorrect ID");
break;
}
}
</pre>
OUTPUT:

<pre>
Plese Enter Your ID:
500
Enter your password:
000
Welcome Dear Programmer
</pre>

1. In the given program we have initialized two variables: ID with 500 and
password with value 000.
2. An outer switch construct is used to compare the value entered in
variable ID and execute the block of statements associated with the
matched case(when ID==500).
3. If the block statement is executed with the matched case, an inner
switch is used to compare the values entered in the variable password
and execute the statements linked with the matched case(When
password==000) .Otherwise, the switch case will trigger the default case
and print the appropriate text regarding the program outline.

Why do we need a Switch case?


There is one potential problem with the if-else statement which is the
complexity of the program increases whenever the number of alternative path
increases. If you use multiple if-else constructs in the program, a program
might become difficult to read and comprehend. Sometimes it may even
confuse the developer who himself wrote the program.

The solution to this problem is the switch statement.

Rules for switch statement:


 An expression must always execute to a result.
 Case labels must be constants and unique.
 Case labels must end with a colon ( : ).
 A break keyword must be present in each case.
 There can be only one default label.
 We can nest multiple switch statements.

Summary
 A switch is a decision making construct in ‘C.’
 A switch is used in a program where multiple decisions are involved.
 A switch must contain an executable test-expression.
 Each case must include a break keyword.
 Case label must be constants and unique.
 The default is optional.
 Multiple switch statements can be nested within one another.

You might also like