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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| 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.

