c#switch条件语句的⽤法
switch条件语句是⼀种很常⽤的选择语句,它与if条件语句不同,它只针对某个表达式的值作出判断,从⽽决定执⾏哪⼀段代码。
switch条件语句⽤到的关键字:  switch  case  break  default 。
switch条件语句的格式如下:
switch (表达式)
{
case ⽬标值1:
执⾏语句1;
break;
case ⽬标值2:
执⾏语句2;
break;
switch case判断字符串......
case ⽬标值n:
执⾏语句n;
break;
default:
执⾏语句n+1;
break;
}
在上⾯的格式中,switch语句将表达式的值与每个case中的⽬标值进⾏匹配,如果到了匹配的值,会执⾏对应case后边的语句;如果没到任何匹配的值,就会执⾏default后的语句。switch语句中的break关键字的作⽤是跳出switch语句。
switch (⽤于表⽰星期的数字)
{
case 1:
输出星期⼀;
break;
case 2:
输出星期⼆;
break;
case 3:
输出星期三;
break;
case 4:
输出星期四;
break;
case 5:
输出星期五;
break;
case 6:
输出星期六;
break;
case 7:
输出星期⽇;
break;
default:
输出此⽇期为⾮法⽇期;
break;
}
上⾯的伪代码根据数字来输出中⽂格式的星期。
switch条件语句的表达式的类型可以是: bool,整形,char,string,枚举,或相应可以为null的类型。
下⾯就演⽰⼀个表达式类型为字符串的案例:
string []Date={"Monday","Tuesday","Wednesday","Thursday","Firday","Saturday","Sunday"};//数组的索引值(下标)分别为0,1,2,3,4,5,6;
string []ChineseDate = { "星期⼀", "星期⼆", "星期三", "星期四", "星期五", "星期六", "星期⽇" };
for (int i = int.Parse(Console.ReadLine()); i > 0 && i <= 7; i = int.Parse(Console.ReadLine()))//i=7是因为输⼊7的时候对应的索引值为6,输出星期⽇;            {
switch (Date[i-1])  //表达式的值是字符串,  i-1是因为字符串数组的下标是从0开始的.
{
case "Monday":  //对应的case⽬标值也应该是字符串;
Console.WriteLine(ChineseDate[i - 1]);
break;
case "Tuesday":
Console.WriteLine(ChineseDate[i - 1]);
break;
case "Wednesday":
Console.WriteLine(ChineseDate[i - 1]);
break;
case "Thursday":
Console.WriteLine(ChineseDate[i - 1]);
break;
case "Firday":
Console.WriteLine(ChineseDate[i - 1]);
break;
case "Saturday":
Console.WriteLine(ChineseDate[i - 1]);
break;
case "Sunday":
Console.WriteLine(ChineseDate[i - 1]);
break;
default:
Console.WriteLine("此⽇期为⾮法⽇期");//因为在循环中,索引值被循环条件限制,所以这⾥的default没有⽤上;
break;
}
}
在使⽤switch语句的过程中,如果多个case条件后⾯的执⾏语句是⼀样的,则该执⾏语句只需书写⼀次即可,只是⼀种简写的⽅式。
例如要判断⼀周中的某⼀天是⼯作⽇还是休息⽇:
int week = 2;
switch (week)
{
case 1:
case 2:
case 3:
case 4:
case 5:
Console.WriteLine("今天是⼯作⽇");//当变量week的值为1,2,3,4,5中任意⼀个值时,处理⽅法相同,都是打印"今天是⼯作⽇".
break;
case 6:
case 7:
Console.WriteLine("今天是休息⽇");//同理
break;
}
c#中switch语句两个case标签之间有代码,却没有break跳出的话,系统会提⽰错误:控制不能从⼀个case标签贯穿到另⼀个case标签。
int week = 2;
switch (week)
{
case 1:
case 2:
case 3: Console.WriteLine("当两个case标签之间有代码,却没有break,系统会提⽰错误:控制不能从⼀个case标签贯穿到另⼀个case标签");
case 4:
case 5:
Console.WriteLine("今天是⼯作⽇");
break;
case 6:
case 7:
Console.WriteLine("今天是休息⽇");
break;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。