The switch statement in C# is a control flow statement that allows you to execute a block of code based on the value of a variable. It is similar to a series of if-else statements but provides a more readable and organized way to handle multiple conditions.
Structure of a switch Statement
The basic structure of a switch statement includes:
The switch keyword followed by an expression in parentheses.
A series of case labels, each representing a specific value that the expression can take.
A default case, which is optional and executes if none of the case values match the expression.
Example
usingSystem;
classProgram
{
staticvoidMain()
{
intdayOfWeek=5;
switch (dayOfWeek)
{
case1:
Console.WriteLine(“Monday”);
break;
case2:
Console.WriteLine(“Tuesday”);
break;
case3:
Console.WriteLine(“Wednesday”);
break;
case4:
Console.WriteLine(“Thursday”);
break;
case5:
Console.WriteLine(“Friday”);
break;
case6:
Console.WriteLine(“Saturday”);
break;
case7:
Console.WriteLine(“Sunday”);
break;
default:
Console.WriteLine(“Invalid day of the week”);
break;
}
}
}
Explanation of the Example
The variable dayOfWeek is initialized to the value 5.
The switch statement evaluates the value of dayOfWeek.
It matches the value with the appropriate case label.
When dayOfWeek is 5, the corresponding block of code for case 5 is executed, printing “Friday” to the console.
The break statement is used to terminate the switch block and prevent the execution from falling through to subsequent cases.
The default case provides a fallback option if none of the case labels match the value of dayOfWeek. In this case, it prints “Invalid day of the week.“
Advantages of Using switch
Readability: switch statements are more readable and organized than multiple if-else statements, especially when dealing with multiple conditions.
Performance: In some cases, switch statements can be more efficient than if-else chains, as the compiler may optimize them better.
Limitations in switch statement
Switch statements can only evaluate discrete values (such as integers, characters, and strings) and cannot handle ranges or complex conditions.
Every case should end with a break, return, or goto statement to prevent fall-through, except when intentionally leveraging fall-through logic.