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

Switch statement execution in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Switch Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of switch with fall-through using goto case
What is the output of this C# code snippet?
C Sharp (C#)
int x = 2;
switch (x)
{
    case 1:
        Console.WriteLine("One");
        break;
    case 2:
        Console.WriteLine("Two");
        goto case 3;
    case 3:
        Console.WriteLine("Three");
        break;
    default:
        Console.WriteLine("Default");
        break;
}
ATwo\nThree
BTwo
CThree
DDefault
Attempts:
2 left
💡 Hint
Remember that 'goto case' transfers control to another case label.
❓ Predict Output
intermediate
2:00remaining
Switch expression output with pattern matching
What is the output of this C# code using a switch expression?
C Sharp (C#)
object obj = 5;
string result = obj switch
{
    int i when i > 0 => "Positive integer",
    int i when i < 0 => "Negative integer",
    string s => "String",
    _ => "Other"
};
Console.WriteLine(result);
APositive integer
BNegative integer
CString
DOther
Attempts:
2 left
💡 Hint
Check the type and condition matched in the switch expression.
🔧 Debug
advanced
2:00remaining
Identify the error in switch statement
What error does this C# code produce?
C Sharp (C#)
int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
    case 2:
        Console.WriteLine("Tuesday");
        break;
    default:
        Console.WriteLine("Other day");
}
ARuntime error: fall-through not allowed
BCompile-time error: duplicate case labels
CNo error, output is Monday\nTuesday
DCompile-time error: missing break in case 1
Attempts:
2 left
💡 Hint
C# does not allow implicit fall-through between cases.
❓ Predict Output
advanced
2:00remaining
Switch with multiple case labels and default
What is the output of this C# switch statement?
C Sharp (C#)
char grade = 'B';
switch (grade)
{
    case 'A':
    case 'B':
        Console.WriteLine("Pass");
        break;
    case 'C':
        Console.WriteLine("Average");
        break;
    default:
        Console.WriteLine("Fail");
        break;
}
AAverage
BFail
CPass
DNo output
Attempts:
2 left
💡 Hint
Multiple case labels can share the same code block.
🧠 Conceptual
expert
2:00remaining
Switch statement behavior with nullable types
Given the following code, what is the output?
C Sharp (C#)
int? number = null;
switch (number)
{
    case null:
        Console.WriteLine("Null value");
        break;
    case > 0:
        Console.WriteLine("Positive number");
        break;
    default:
        Console.WriteLine("Other number");
        break;
}
ACompile-time error
BNull value
COther number
DPositive number
Attempts:
2 left
💡 Hint
Switch supports pattern matching including null checks on nullable types.

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