Bird
Raised Fist0
Cprogramming~5 mins

Switch statement

Choose your learning style10 modes available
Introduction

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 == constant1
        break;
    case constant2:
        // code to run if expression == constant2
        break;
    // more cases...
    default:
        // code to run if no case matches
        break;
}

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.
C
switch (day) {
    case 1:
        printf("Monday\n");
        break;
    case 2:
        printf("Tuesday\n");
        break;
    default:
        printf("Other day\n");
        break;
}
This example prints a message based on the grade character.
C
char grade = 'B';
switch (grade) {
    case 'A':
        printf("Excellent\n");
        break;
    case 'B':
        printf("Good\n");
        break;
    default:
        printf("Needs Improvement\n");
        break;
}
Sample Program

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) {
        case 1:
            printf("Number is one\n");
            break;
        case 2:
            printf("Number is two\n");
            break;
        case 3:
            printf("Number is three\n");
            break;
        default:
            printf("Number is something else\n");
            break;
    }
    return 0;
}
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

  1. Step 1: Understand the role of switch

    A switch statement chooses one path among many based on a variable's value.
  2. Step 2: Compare with other options

    Loops repeat code, functions define reusable blocks, and declarations create variables, which are different from switch's purpose.
  3. Final Answer:

    To select one action from multiple choices based on a variable's value -> Option C
  4. 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

  1. Step 1: Recall switch syntax

    The correct syntax uses parentheses around the variable: switch(variable) { ... }
  2. Step 2: Check options

    Only switch (variable) { case 1: ... } uses parentheses correctly; others miss parentheses or use wrong brackets.
  3. Final Answer:

    switch (variable) { case 1: ... } -> Option A
  4. 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

  1. Step 1: Identify the switch variable value

    The variable x is 2, so the switch checks case 2.
  2. Step 2: Match case and output

    Case 2 matches, so it prints "Two" and then breaks to stop further checks.
  3. Final Answer:

    Two -> Option D
  4. 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

  1. Step 1: Check each case for break

    Case 1 lacks a break, so if matched, it would fall through to case 2.
  2. Step 2: Understand impact

    Missing break can cause unintended multiple prints; adding break after case 1 fixes this.
  3. Final Answer:

    Missing break after case 1 -> Option A
  4. 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

  1. Step 1: Group cases for same output

    Cases 1 to 5 print "Weekday", so group them before one printf and break.
  2. Step 2: Group weekend cases

    Cases 6 and 7 print "Weekend" similarly grouped with break.
  3. 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.
  4. Final Answer:

    Groups weekday cases 1-5 and weekend cases 6-7 with breaks and default -> Option B
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard