关于switch的小技巧
switch中的case穿越
1
using System;
2![](/Images/OutliningIndicators/None.gif)
3
class SwitchSample
4
{
5
public static void Main()
6
{
7
Console.WriteLine("Please enter the letter:");
8
string letter = Console.ReadLine();
9![](/Images/OutliningIndicators/InBlock.gif)
10
switch(letter)
11
{
12
case "a":
13
case "A":
14
case "b":
15
case "B":
16
Console.WriteLine("it's Ok");
17
break;
18
case "c":
19
case "C":
20
default:
21
Console.WriteLine("default!!!!!");
22
break;
23
}
24
}
25
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
输入a
运行结果
it's ok
当case中放空语句的时候,流程控制会直接穿越这个case到下一个case,直到非空语句为止,所以上面的程序当我们输入a的时候,会直接穿越到16行执行。我们可以利用这个特点让多个条件执行同一个语句。