๐ŸŽ“ A1Learner
๐Ÿ”

C# Switch

A switch statement is code that matches one value against a list of cases. The case with the matching value runs its statements.

Matching one case

The value 3 matches case 3. That case prints its day name.

using System;

class Program
{
    static void Main(string[] args)
    {
        int day = 3;
        switch (day)
        {
            case 1:
                Console.WriteLine("Monday");
                break;
            case 2:
                Console.WriteLine("Tuesday");
                break;
            case 3:
                Console.WriteLine("Wednesday");
                break;
        }
    }
}

The default case

The value 9 matches no case here. The default case runs.

using System;

class Program
{
    static void Main(string[] args)
    {
        int day = 9;
        switch (day)
        {
            case 1:
                Console.WriteLine("Monday");
                break;
            case 2:
                Console.WriteLine("Tuesday");
                break;
            default:
                Console.WriteLine("Unknown day");
                break;
        }
    }
}

A missing break

This code has no break after case 1. The compiler refuses it and reports an error.

using System;

class Program
{
    static void Main(string[] args)
    {
        int day = 1;
        switch (day)
        {
            case 1:
                Console.WriteLine("Monday");
            case 2:
                Console.WriteLine("Tuesday");
                break;
        }
    }
}

Example

using System;

class Program
{
    static void Main(string[] args)
    {
        char grade = 'B';
        switch (grade)
        {
            case 'A':
                Console.WriteLine("Excellent");
                break;
            case 'B':
                Console.WriteLine("Good");
                break;
            case 'C':
                Console.WriteLine("Fair");
                break;
            default:
                Console.WriteLine("Try again");
                break;
        }
    }
}

Key points

  • Each case names one value to match.
  • A break ends a case and leaves the switch.
  • The default case runs when no case matches.
  • A case with statements must end with break.

In this example, grade holds the char B. The switch compares it with each case in order. Case B is the first match. Its statements print "Good". The break then leaves the switch.

Note

C# stops a case from falling into the next case, and the compiler reports error CS0163.

Try it Yourself

Edit the code, then press Run.

Running is simulated ยท Programiz C# Compiler

Exercise

What does the default case do?