C - Switch Statement
switch
selects a branch based on the value of an integral expression (e.g., int
, char
). Use it when comparing a single variable to many constants.
Learning Objectives
- Use
switch
withcase
,break
, anddefault
. - Understand fall-through and when it’s intentional.
Prerequisites
Example
#include <stdio.h>
int main(void) {
char op = '+';
int a = 2, b = 3, result = 0;
switch (op) {
case '+': result = a + b; break;
case '-': result = a - b; break;
case '*': result = a * b; break;
case '/': result = (b != 0) ? a / b : 0; break;
default: printf("unknown op\n"); break;
}
printf("%d\n", result);
}
Common Pitfalls
- Missing
break
causes fall-through into the next case. - Using non-integral types in
switch
expressions (not allowed in C).
Checks for Understanding
- What does the
default
label do?
Show answers
- Handles any case not matched by the listed
case
labels.