#177 – Using goto in a switch Statement
December 11, 2010 Leave a comment
You can use a goto statement within a switch statement to jump to another case clause. This allows you to execute the contents of more than one case clause for a particular value of the switch expression.
switch (day) { case DayOfWeek.Sunday: Console.WriteLine("Go to church"); goto case DayOfWeek.Saturday; case DayOfWeek.Monday: Console.WriteLine("Read Ulysses"); break; case DayOfWeek.Tuesday: Console.WriteLine("Call Dad"); goto case DayOfWeek.Saturday; case DayOfWeek.Wednesday: Console.WriteLine("Do laundry"); goto case DayOfWeek.Thursday; case DayOfWeek.Thursday: Console.WriteLine("Watch a movie"); break; case DayOfWeek.Friday: Console.WriteLine("Take out the trash"); goto case DayOfWeek.Tuesday; case DayOfWeek.Saturday: Console.WriteLine("Relax"); break; }
This results in the following output:
- Sunday: Go to church; Relax
- Monday: Read Ulysses
- Tuesday: Call Dad; Relax
- Wednesday: Do laundry; Watch a movie
- Thursday: Watch a movie
- Friday: Take out the trash; Call Dad; Relax
- Saturday: Relax
Think carefully before using goto in a switch statement. There are often more clear ways to implement the same logic.