Bird
Raised Fist0
Cprogramming~5 mins

Switch statement - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Switch statement
O(1)
Understanding Time Complexity

We want to see how the time to run a switch statement changes as the input changes.

Does it take longer if there are more cases or if the input is different?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


int example(int x) {
    switch (x) {
        case 1:
            return 10;
        case 2:
            return 20;
        case 3:
            return 30;
        default:
            return 0;
    }
}
    

This code returns a value based on the input number using a switch statement.

Identify Repeating Operations

Look for repeated work inside the switch.

  • Primary operation: The switch checks the input once to find the matching case.
  • How many times: Exactly one time per function call, no loops or repeated checks.
How Execution Grows With Input

The switch picks the right case quickly without repeating work.

Input Size (n)Approx. Operations
31 check
101 check
1001 check

Pattern observation: The number of operations stays about the same no matter the input size.

Final Time Complexity

Time Complexity: O(1)

This means the time to run the switch does not grow with input size; it stays constant.

Common Mistake

[X] Wrong: "A switch statement checks every case one by one, so it takes longer with more cases."

[OK] Correct: Modern compilers often optimize switches to jump directly to the matching case, so it does not check all cases one by one.

Interview Connect

Understanding how switch statements work helps you explain code efficiency clearly and shows you know how simple decisions affect performance.

Self-Check

"What if the switch had many cases but no breaks, causing fall-through? How would the time complexity change?"

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