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条件语句的介绍就到这里了,欢迎小伙伴们提供意见,可能有遗漏的地方,希望见谅.