C switch
last modified January 9, 2023
C switch tutorial shows how to control flow in C with switch statement.
The switch statement
The switch statement is a control statement that used to change the
flow of a program. It provides an easy way to dispatch execution to different
parts of code based on the value of a variable or expression. The
switch statement is an alternative to multiple if/else
statements.
The body of a switch statement may have an arbitrary number of case
labels. The labels are evaluated against the given value. The expression
provided in the switch must result in a constant value.
The expression is evaluated once and compared with the values of each
case label. If there is a match, the statements after the matching
label are executed.
A case label is usually ended with a break
statement; it terminates the execution of a switch statement. If
omitted, it execution goes to the next case label.
An optional default statement is executed when there is no match
found.
C switch example
In the following example, we use the switch statement to make
a decistion based on the user input.
#include <stdio.h>
int main() {
printf("Are you sure to continue? y/n ");
char c;
scanf(" %c", &c);
switch (c) {
case 'y':
printf("program continues\n");
break;
case 'n':
printf("program stops\n");
break;
default:
printf("wrong option\n");
}
}
We are asked if we want to continue and we are given two options to choose: y or n.
char c;
scanf(" %c", &c);
We read the input from the user with scanf. The space character
before the %c specifier skips any leading whitespace.
case 'y':
printf("program continues\n");
break;
This branch is executed if we chose 'y'.
case 'n':
printf("program stops\n");
break;
This branch is executed if we chose 'n'.
default:
printf("wrong option\n");
We get this branch executed for any other option.
$ ./switch_stm Are you sure to continue? y/n y program continues
C switch example 2
The next example shows how to get the same output for multiple options.
#include <stdio.h>
enum week { Mon, Tue, Wed, Thu, Fri, Sat, Sun };
int main() {
enum week day = Wed;
switch (day) {
case Mon:
case Tue:
case Wed:
case Thu:
case Fri:
printf("Weekday\n");
break;
case Sat:
case Sun:
printf("Weekend\n");
break;
}
}
If we omit the break statement, the execution falls through to the
next case. It can be used to group options for single output.
case Mon:
case Tue:
case Wed:
case Thu:
case Fri:
printf("Weekday\n");
break;
Monday throug Friday are weekdays.
$ ./switch_stm2 Weekday
In this article, we have covered the C switch statement.