A switch statement allows a variable to be tested for equality against a list of values. Each value is called a case, and the variable being switched on is checked for each switch case.
Syntax:
The syntax for a switch statement in C# is as follows:
switch(expression){
case constant-expression :
statement(s);
break; /* optional */
case constant-expression :
statement(s);
break; /* optional */
/* you can have any number of case statements */
default : /* Optional */
statement(s);
}
The following rules apply to a switch statement:
- The expression used in a switch statement must have an integral or enumerated type, or be of a class type in which the class has a single conversion function to an integral or enumerated type.
- You can have any number of case statements within a switch. Each case is followed by the value to be compared to and a colon.
- The constant-expression for a case must be the same data type as the variable in the switch, and it must be a constant or a literal.
- When the variable being switched on is equal to a case, the statements following that case will execute until a break statement is reached.
- When a break statement is reached, the switch terminates, and the flow of control jumps to the next line following the switch statement.
- Not every case needs to contain a break. If no break appears, the flow of control will fall throughto subsequent cases until a break is reached.
- A switch statement can have an optional default case, which must appear at the end of the switch. The default case can be used for performing a task when none of the cases is true. Nobreak is needed in the default case.
Flow Diagram:
Example:
using System; namespace Switch_Case { class Program { static void Main(string[] args) { int opt, num1, num2; float result; label: Console.WriteLine("\n\tMenu"); Console.WriteLine("\nPress 1 for add"); Console.WriteLine("Press 2 for subtraction"); Console.WriteLine("Press 3 for multiplication"); Console.WriteLine("Press 4 for Division"); Console.Write("\n\nEnter first number:\t"); num1 = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter second number:\t"); num2 = Convert.ToInt32(Console.ReadLine()); Console.Write("\nEnter your option:\t"); opt = Convert.ToInt32(Console.ReadLine()); switch (opt) { case 1: result = num1 + num2; Console.WriteLine("\n{0} + {1} = {2}", num1, num2, result); break; case 2: result = num1 - num2; Console.WriteLine("\n{0} - {1} = {2}", num1, num2, result); break; case 3: result = num1 * num2; Console.WriteLine("\n{0} * {1} = {2}", num1, num2, result); break; case 4: result = (float)num1 / num2; Console.WriteLine("\n{0} / {1} = {2}", num1, num2, result); break; default: Console.WriteLine("\nInvalid option. Please try again."); goto label; } Console.ReadLine(); } } }
When the above code is compiled and executed, it produces the following result:
Menu
Press 1 for add
Press 2 for subtraction
Press 3 for multiplication
Press 4 for Division
Enter first number : 22
Enter second number : 8
Enter your option: 4
22 / 8 = 2.75
Previous.... Next.....