Bird
Raised Fist0
C Sharp (C#)programming~10 mins

Switch statement execution in C Sharp (C#) - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Switch statement execution
Start
↓
Evaluate switch expression
↓
Compare with case 1?
No→Compare with case 2?
↓
Execute case 1 block
↓
Break or fallthrough?
↓
Default case
↓
Exit switch
↓
Exit switch
The switch statement evaluates an expression, compares it to each case label, executes the matching case block, and exits or continues based on break statements.
Execution Sample
C Sharp (C#)
int day = 3;
switch(day) {
  case 1: Console.WriteLine("Monday"); break;
  case 2: Console.WriteLine("Tuesday"); break;
  case 3: Console.WriteLine("Wednesday"); break;
  default: Console.WriteLine("Other day"); break;
}
This code prints the name of the day based on the integer value of 'day'.
Execution Table
StepActionExpression ValueCase ComparedMatch?Executed OutputNext Step
1Evaluate switch expression3Compare with case 1
2Compare expression with case 131NoCompare with case 2
3Compare expression with case 232NoCompare with case 3
4Compare expression with case 333YesPrint 'Wednesday'Break and exit switch
5Exit switchEnd
💡 Execution stops after matching case 3 and hitting break.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
day333333
Key Moments - 3 Insights
Why does the switch stop after case 3 and not check the default case?
Because the case 3 matches the expression value and the break statement stops further checking, as shown in execution_table row 4.
What happens if there is no break after a case?
Without break, execution continues to the next case block (fallthrough). This is not shown here but is important to avoid unintended code running.
Why is the default case executed only if no other case matches?
Default runs only when no case matches the expression, as seen in execution_table rows 2 and 3 where no match leads to default.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the expression value evaluated at step 1?
A0
B1
C3
Ddefault
💡 Hint
Check the 'Expression Value' column in execution_table row 1.
At which step does the switch statement find a matching case?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'Match?' column in execution_table to find where 'Yes' appears.
If the variable 'day' was 5, which case would execute?
Adefault
Bcase 3
Ccase 1
DNo case executes
💡 Hint
Refer to the explanation in key_moments about default case execution.
Concept Snapshot
switch(expression) {
  case value1: // code; break;
  case value2: // code; break;
  ...
  default: // code; break;
}
- Evaluates expression once
- Compares with each case
- Executes matching case block
- break exits switch
- default runs if no match
Full Transcript
This visual execution shows how a switch statement works in C#. The switch expression is evaluated once. Then it is compared to each case label in order. If a case matches, its code runs and the break statement stops further checking. If no case matches, the default block runs. The example uses day=3, which matches case 3 and prints 'Wednesday'. The execution table tracks each step, showing comparisons and outputs. Key moments clarify why break is important and when default runs. The quiz tests understanding of expression evaluation, matching steps, and default behavior.

Practice

(1/5)
1.

What is the main purpose of a switch statement in C#?

easy
A. To repeat a block of code multiple times
B. To execute different code blocks based on the value of a variable
C. To define a function
D. To declare variables

Solution

  1. Step 1: Understand the role of switch

    A switch statement selects one of many code blocks to execute based on a variable's value.
  2. Step 2: Compare with other options

    Loops repeat code, functions define reusable code, and variable declarations create variables, none of which match switch's purpose.
  3. Final Answer:

    To execute different code blocks based on the value of a variable -> Option B
  4. Quick Check:

    Switch chooses code by value = A [OK]
Hint: Switch chooses code based on variable value [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: break; }
B. switch variable { case 1: break; }
C. switch (variable) case 1: break;
D. switch { variable case 1: break; }

Solution

  1. Step 1: Recall switch syntax

    The correct syntax uses parentheses around the variable and braces around cases: switch (variable) { ... }
  2. Step 2: Check each option

    switch (variable) { case 1: break; } matches correct syntax; others miss parentheses or braces or have wrong order.
  3. Final Answer:

    switch (variable) { case 1: break; } -> Option A
  4. Quick Check:

    Parentheses and braces required = C [OK]
Hint: Switch needs (variable) and { cases } syntax [OK]
Common Mistakes:
  • Omitting parentheses around variable
  • Missing braces around cases
  • Incorrect order of keywords
3.

What will be the output of this C# code?

int day = 3;
switch (day) {
  case 1:
    Console.WriteLine("Monday");
    break;
  case 2:
    Console.WriteLine("Tuesday");
    break;
  case 3:
    Console.WriteLine("Wednesday");
    break;
  default:
    Console.WriteLine("Invalid day");
    break;
}
medium
A. Wednesday
B. Monday
C. Tuesday
D. Invalid day

Solution

  1. Step 1: Identify the switch variable value

    The variable day is 3.
  2. Step 2: Match case with variable

    Case 3 matches, so it prints "Wednesday" and then breaks.
  3. Final Answer:

    Wednesday -> Option A
  4. Quick Check:

    day=3 prints Wednesday [OK]
Hint: Match variable value to case label [OK]
Common Mistakes:
  • Forgetting break causes fall-through
  • Choosing default when case matches
  • Mixing case numbers and output
4.

Find the error in this switch statement and select the fix:

int number = 2;
switch (number) {
  case 1:
    Console.WriteLine("One");
  case 2:
    Console.WriteLine("Two");
  default:
    Console.WriteLine("Default");
}
medium
A. Add semicolon after switch statement
B. Remove the default case
C. Change switch to if
D. Add break; after each case block

Solution

  1. Step 1: Identify missing break statements

    Each case lacks a break, causing fall-through to next cases.
  2. Step 2: Fix by adding breaks

    Adding break after each case stops fall-through and executes only matched case.
  3. Final Answer:

    Add break; after each case block -> Option D
  4. Quick Check:

    Break stops fall-through = A [OK]
Hint: Add break to stop fall-through in switch [OK]
Common Mistakes:
  • Ignoring fall-through behavior
  • Removing default case unnecessarily
  • Misusing if instead of switch
5.

Given this code, what will be printed?

int score = 85;
switch (score / 10) {
  case 10:
  case 9:
    Console.WriteLine("Excellent");
    break;
  case 8:
    Console.WriteLine("Good");
    break;
  case 7:
  case 6:
    Console.WriteLine("Pass");
    break;
  default:
    Console.WriteLine("Fail");
    break;
}
hard
A. Excellent
B. Fail
C. Good
D. Pass

Solution

  1. Step 1: Calculate switch expression value

    score is 85, so score / 10 is 8 (integer division).
  2. Step 2: Match case for value 8

    Case 8 prints "Good" and breaks.
  3. Final Answer:

    Good -> Option C
  4. Quick Check:

    85/10=8 prints Good [OK]
Hint: Divide score by 10, match case labels [OK]
Common Mistakes:
  • Not using integer division
  • Missing combined cases for 9 and 10
  • Choosing default incorrectly
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