A switch statement helps you choose between many options easily. It makes your code cleaner when you have many conditions to check.
When you want to run different code based on a variable's value.
When you have many fixed choices like menu options.
When you want to replace many if-else statements for clarity.
When you want to handle different cases for a number or character input.
Syntax
C
switch (expression) {
case constant1:
// code to run if expression == constant1break;
case constant2:
// code to run if expression == constant2break;
// more cases...
default:
// code to run if no case matchesbreak;
}
The expression is checked once.
Each case compares the expression to a constant value.
Examples
This example prints the day name for 1 or 2, or "Other day" if no match.
This program checks the value of number. It prints the matching case message. Since number is 3, it prints "Number is three".
C
#include <stdio.h>
int main() {
int number = 3;
switch (number) {
case1:
printf("Number is one\n");
break;
case2:
printf("Number is two\n");
break;
case3:
printf("Number is three\n");
break;
default:
printf("Number is something else\n");
break;
}
return0;
}
OutputSuccess
Important Notes
Always use break; to stop running other cases after a match.
The default case runs if no other case matches. It is optional but useful.
Cases must be constant values, not variables or expressions.
Summary
Switch statements help pick one action from many choices.
Use case for each choice and break; to stop.
default handles all other cases not listed.
Practice
(1/5)
1. What is the main purpose of a switch statement in C?
easy
A. To define a function
B. To repeat a block of code multiple times
C. To select one action from multiple choices based on a variable's value
D. To declare variables
Solution
Step 1: Understand the role of switch
A switch statement chooses one path among many based on a variable's value.
Step 2: Compare with other options
Loops repeat code, functions define reusable blocks, and declarations create variables, which are different from switch's purpose.
Final Answer:
To select one action from multiple choices based on a variable's value -> Option C
Quick Check:
Switch = Choice selection [OK]
Hint: Switch picks one case based on value, like a menu choice [OK]
Common Mistakes:
Confusing switch with loops
Thinking switch defines functions
Believing switch declares variables
2. Which of the following is the correct syntax to start a switch statement in C?
easy
A. switch (variable) { case 1: ... }
B. switch variable { case 1: ... }
C. switch [variable] { case 1: ... }
D. switch variable: case 1: ...
Solution
Step 1: Recall switch syntax
The correct syntax uses parentheses around the variable: switch(variable) { ... }
Step 2: Check options
Only switch (variable) { case 1: ... } uses parentheses correctly; others miss parentheses or use wrong brackets.
Final Answer:
switch (variable) { case 1: ... } -> Option A
Quick Check:
Switch needs parentheses around variable [OK]
Hint: Remember: switch(variable) uses parentheses, not brackets or none [OK]
Common Mistakes:
Omitting parentheses around variable
Using square brackets instead of parentheses
Using colon instead of braces
3. What will be the output of this C code?
int x = 2;
switch (x) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
default:
printf("Other\n");
}
medium
A. One
B. Other
C. No output
D. Two
Solution
Step 1: Identify the switch variable value
The variable x is 2, so the switch checks case 2.
Step 2: Match case and output
Case 2 matches, so it prints "Two" and then breaks to stop further checks.
Final Answer:
Two -> Option D
Quick Check:
Case 2 matches x=2, prints "Two" [OK]
Hint: Match variable value to case, print and break [OK]
Common Mistakes:
Forgetting break causes fall-through
Choosing default when case matches
Confusing case numbers
4. Find the error in this switch statement:
int n = 3;
switch (n) {
case 1:
printf("One\n");
case 2:
printf("Two\n");
break;
default:
printf("Default\n");
}
medium
A. Missing break after case 1
B. Missing default case
C. Wrong switch syntax
D. Variable n not declared
Solution
Step 1: Check each case for break
Case 1 lacks a break, so if matched, it would fall through to case 2.
Step 2: Understand impact
Missing break can cause unintended multiple prints; adding break after case 1 fixes this.
Final Answer:
Missing break after case 1 -> Option A
Quick Check:
Each case needs break to stop fall-through [OK]
Hint: Always add break after each case unless fall-through wanted [OK]
Common Mistakes:
Ignoring missing break causes fall-through
Thinking default is mandatory
Assuming variable declaration error
5. You want to write a switch statement that prints "Weekend" for cases 6 and 7, and "Weekday" for cases 1 to 5. Which code correctly does this?
hard
A. switch(day) { case 1: printf("Weekday\n"); break; case 2: printf("Weekday\n"); break; case 3: printf("Weekend\n"); break; case 4: printf("Weekday\n"); break; case 5: printf("Weekday\n"); break; case 6: printf("Weekend\n"); break; case 7: printf("Weekend\n"); break; }
B. switch(day) { case 1: case 2: case 3: case 4: case 5: printf("Weekday\n"); break; case 6: case 7: printf("Weekend\n"); break; default: printf("Invalid\n"); }
C. switch(day) { case 1: case 2: case 3: case 4: case 5: printf("Weekend\n"); break; case 6: case 7: printf("Weekday\n"); break; }
D. switch(day) { case 1: case 2: case 3: case 4: case 5: printf("Weekday\n"); case 6: case 7: printf("Weekend\n"); break; }
Solution
Step 1: Group cases for same output
Cases 1 to 5 print "Weekday", so group them before one printf and break.
Step 2: Group weekend cases
Cases 6 and 7 print "Weekend" similarly grouped with break.
Step 3: Check default case
switch(day) { case 1: case 2: case 3: case 4: case 5: printf("Weekday\n"); break; case 6: case 7: printf("Weekend\n"); break; default: printf("Invalid\n"); } includes default for invalid days, which is good practice.
Final Answer:
Groups weekday cases 1-5 and weekend cases 6-7 with breaks and default -> Option B
Quick Check:
Group cases with same output, add break after each group [OK]
Hint: Group cases with same output, add break after group [OK]
Common Mistakes:
Printing wrong labels for grouped cases
Missing breaks causing fall-through
Not handling default case
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.