Hey! If you love C# and building C# apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Switch Statements in C#: A Comprehensive Guide

Unleash the Power of Switch Statements in C#! Learn how to use this versatile control flow statement to simplify your code and streamline your development process. From basic syntax to advanced techniques, we’ve got you covered!


Updated October 18, 2023

In this article, we will be discussing one of the most powerful and versatile control flow statements in C#: the switch statement. We’ll cover everything you need to know about switch statements, from the basic syntax to advanced use cases. By the end of this article, you’ll have a solid understanding of how to use switch statements effectively in your C# projects.

Basic Syntax

The basic syntax of a switch statement in C# is as follows:

switch (expression)
{
    case value1:
        // code block 1
        break;
    case value2:
        // code block 2
        break;
    // ...
    default:
        // code block for all other cases
        break;
}

In this syntax, expression is the expression that you want to evaluate, and value1, value2, etc. are the possible values that expression can take on. The case clauses define the actions that should be taken when expression takes on each of these values. The default clause defines the action that should be taken for all other values.

How Switch Statements Work

When the switch statement is executed, the value of expression is evaluated and compared to the values specified in the case clauses. If a matching case clause is found, the code block associated with that case is executed, and the execution of the switch statement stops. If no matching case clause is found, the code block associated with the default clause is executed.

Here’s an example of how a switch statement might be used:

int age = 25;
switch (age)
{
    case 18:
        Console.WriteLine("You are eligible to vote.");
        break;
    case 21:
        Console.WriteLine("You are eligible to drink alcohol.");
        break;
    default:
        Console.WriteLine("Your age does not qualify you for any legal privileges.");
        break;
}

In this example, the value of age is evaluated and compared to the values specified in the case clauses. Since age is 25, which is not equal to any of the values specified in the case clauses, the code block associated with the default clause is executed.

Advanced Use Cases

While switch statements are most commonly used for simple value comparisons, they can also be used for more complex operations. Here are a few advanced use cases:

Switching on Multiple Values

You can use multiple values in a single switch statement by separating them with a comma. For example:

int age = 25;
switch (age)
{
    case 18, 21:
        Console.WriteLine("You are eligible to vote or drink alcohol.");
        break;
    default:
        Console.WriteLine("Your age does not qualify you for any legal privileges.");
        break;
}

In this example, the value of age is evaluated and compared to the values specified in the case clause. Since age is 25, which is not equal to either of the values specified in the case clause, the code block associated with the default clause is executed.

Switching on Objects

You can also use switch statements to compare objects, rather than simple values. For example:

string userType = "admin";
switch (userType)
{
    case "admin":
        Console.WriteLine("You are an administrator.");
        break;
    case "user":
        Console.WriteLine("You are a regular user.");
        break;
    default:
        Console.WriteLine("Your user type is not recognized.");
        break;
}

In this example, the value of userType is evaluated and compared to the values specified in the case clause. Since userType is “admin”, which matches one of the values specified in the case clause, the code block associated with that case is executed.

Switching on Null Values

You can also use switch statements to compare null values. If a null value is passed to a switch statement, the default clause will always be executed. For example:

int? age = null;
switch (age)
{
    case null:
        Console.WriteLine("Your age is not known.");
        break;
    default:
        Console.WriteLine("Your age does not qualify you for any legal privileges.");
        break;
}

In this example, the value of age is evaluated and compared to the values specified in the case clause. Since age is null, which does not match any of the values specified in the case clause, the code block associated with the default clause is executed.

Conclusion

Switch statements are a powerful and versatile control flow statement in C# that can be used for a wide range of applications. By understanding how to use switch statements effectively, you can write more efficient and readable code, and take your C# programming skills to the next level.