c#switch语句的用法

switch条件语句是一种很常用的选择语句,它与if条件语句不同,它只针对某个表达式的值作出判断,从而决定执行哪一段代码.

switch条件语句用到的关键字:  switch  case  break  default

switch条件语句的格式如下:

 1             switch (表达式)
 2             {
 3                 case 目标值1:
 4                     执行语句1;
 5                     break;
 6                 case 目标值2:
 7                     执行语句2;
 8                     break;
 9                 ......
10 
11                 case 目标值n:
12                     执行语句n;
13                     break;
14                 default:
15                     执行语句n+1;
16                     break;
17             }    

在上面的格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,会执行对应case后边的语句;如果没找到任何匹配的值,就会执行default后的语句.switch语句中的break关键字的作用是跳出switch语句.

 1          switch (用于表示星期的数字)
 2             {
 3                 case 1:
 4                     输出星期一;
 5                     break;
 6                 case 2:
 7                     输出星期二;
 8                     break;
 9                 case 3:
10                     输出星期三;
11                     break;
12                 case 4:
13                     输出星期四;
14                     break;
15                 case 5:
16                     输出星期五;
17                     break;
18                 case 6:
19                     输出星期六;
20                     break;
21                 case 7:
22                     输出星期日;
23                     break;
24                 default:
25                     输出此日期为非法日期;
26                     break;
27             }        

上面的伪代码根据数字来输出中文格式的星期.

switch条件语句的表达式的类型可以是: bool,整形,char,string,枚举,或相应可以为null的类型.

下面就演示一个表达式类型为字符串的案例:

 1        string []Date={"Monday","Tuesday","Wednesday","Thursday","Firday","Saturday","Sunday"};//数组的索引值(下标)分别为0,1,2,3,4,5,6;
 2        string []ChineseDate = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };
 3 
 4             for (int i = int.Parse(Console.ReadLine()); i > 0 && i <= 7; i = int.Parse(Console.ReadLine()))//i=7是因为输入7的时候对应的索引值为6,输出星期日;
 5             {
 6                 switch (Date[i-1])  //表达式的值是字符串,  i-1是因为字符串数组的下标是从0开始的.
 7                 {
 8                     case "Monday":  //对应的case目标值也应该是字符串;
 9                         Console.WriteLine(ChineseDate[i - 1]);
10                         break;
11                     case "Tuesday":
12                         Console.WriteLine(ChineseDate[i - 1]);
13                         break;
14                     case "Wednesday":
15                         Console.WriteLine(ChineseDate[i - 1]);
16                         break;
17                     case "Thursday":
18                         Console.WriteLine(ChineseDate[i - 1]);
19                         break;
20                     case "Firday":
21                         Console.WriteLine(ChineseDate[i - 1]);
22                         break;
23                     case "Saturday":
24                         Console.WriteLine(ChineseDate[i - 1]);
25                         break;
26                     case "Sunday":
27                         Console.WriteLine(ChineseDate[i - 1]);
28                         break;
29                     default:
30                         Console.WriteLine("此日期为非法日期");//因为在循环中,索引值被循环条件限制,所以这里的default没有用上;
31                         break;
32                 }
33             }

在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可,只是一种简写的方式.

例如要判断一周中的某一天是工作日还是休息日;

 1           int week = 2;
 2           switch (week)
 3             {
 4                 case 1:
 5                 case 2:
 6                 case 3:
 7                 case 4:
 8                 case 5:
 9                     Console.WriteLine("今天是工作日");//当变量week的值为1,2,3,4,5中任意一个值时,处理方法相同,都是打印"今天是工作日".
10                     break;
11                 case 6:
12                 case 7:
13                     Console.WriteLine("今天是休息日");//同理
14                     break;
15             }    

c#中switch语句两个case标签之间有代码,却没有break跳出的话,系统会提示错误,控制不能从一个case标签贯穿到另一个case标签.

 1         int week = 2;
 2             switch (week)
 3             {
 4                 case 1:
 5                 case 2:
 6                 case 3: Console.WriteLine("当两个case标签之间有代码,却没有break,系统会提示错误:控制不能从一个case标签贯穿到另一个case标签");
 7                 case 4:
 8                 case 5:
 9                     Console.WriteLine("今天是工作日");
10                     break;
11                 case 6:
12                 case 7:
13                     Console.WriteLine("今天是休息日");
14                     break;
15             }    

关于switch条件语句的介绍就到这里了,欢迎小伙伴们提供意见,可能有遗漏的地方,希望见谅.

猜你喜欢

转载自www.cnblogs.com/Topof-TheWorld-YL/p/9262603.html