[C#] C# Switch

Date:     Updated:

Categories:

Tags:

📋 This is my note-taking from what I learned in the c# tutorials!


C# Switch Statement

switch_statement

Use the “switch” statement to select one of many code blocks to be executed.

The switch allows for a more readable branching structure because it is single level.

  • It does an equality comparison (either on ints, or char or string) and then control is transferred to the matching label.
  • Pattern matching is possible.
  • There is a default to catch everything else.

  • Each switch statement contains one or more case labels.
  • All the case labels must be different.
  • Label must be constant or literal.
  • The default case is optional but recommended.
  • Each case must end with a break statement.
  • Switch can also work with enums.

Syntax

switch(<<integral/char/string expression>>)
{
  case <<value 1>>:
    <<code block>>
    break;
  case <<value 2>>:
    <<code block>>
    break;
  default:
    <<code block>>
    break;
}

This is how it works:

  • The “switch” expression is evaluated once.
  • The value of the expression is compared with the values of each “case”.
  • If there is a match, the associated block of code is executed.

The example below uses the weekday number to calculate the weekday name:

int day = 4;

switch (day)
{
  case 1:
    Console.WriteLine("Monday");
    break;
  case 2:
    Console.WriteLine("Tuesday");
    break;
  case 3:
    Console.WriteLine("Wednesday");
    break;
  case 4:
    Console.WriteLine("Thursday");
    break;
  case 5:
    Console.WriteLine("Friday");
    break;
  case 6:
    Console.WriteLine("Saturday");
    break;
  case 7:
    Console.WriteLine("Sunday");
    break;
}
// Outputs "Thursday" (day 4)
Console.Write("Enter a number: ");

int input = Convert.ToInt32(Console.ReadLine());
int remainder = input % 5;

switch (remainder)
{
  case 0:
    Console.WriteLine("Multiple of five");
    break;
  default:
    Console.WriteLine("Not a multiple of five");
    break;
}
Console.Write("Enter a letter: ");

char letter = Convert.ToChar(Console.ReadLine());

switch (letter)
{
  case 'A:
    Console.WriteLine("Apple");
    break;
  case 'B:
  case 'C:
    Console.WriteLine("Baby or Candy");
    break;
  default:
    Console.WriteLine("Sorry I don't know that letter");
    break;
}


The break Keyword

When C# reaches a “break” keyword, it breaks out of the switch block.

This will stop the execution of more code and case testing inside the block.

When a match is found, and the job is done, it’s time for a break. There is no need for more testing.

A break can save a lot of execution time because it “ignores” the execution of all the rest of the code in the switch block.


The default Keyword

The “default” keyword is optional and specifies some code to run if there is no case match:

int day = 4;
switch (day)
{
  case 6:
    Console.WriteLine("Today is Saturday.");
    break;
  case 7:
    Console.WriteLine("Today is Sunday.");
    break;
  default:
    Console.WriteLine("Looking forward to the Weekend.");
    break;
}
// Outputs "Looking forward to the Weekend."
  • The “switch statement” is simple to code and more readable than the corresponding “if statement”.
  • Although switch is more readable, it is less powerful than the if-else statement, because it does not work with “relational expression” such as those using the[ <, <=, > and >= ] operators.
  • Switch is useful when only equality comparisons are needed such as a menu system or checking for a limited number of choices.
  • The break statement at the end of each case is mandatory.




Back to Top

See other articles in Category CS

Leave a comment