usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace_14.流程控制之switch语句{classProgram{staticvoidMain(string[]args){//switch语句/***switch语句可以一次将测试变量与多个值进行比较,而不是仅测试一个条件。*switch语句语法:*switch(<testVar>)*{*case<comparisonVar1>:*<codetoexecuteif<testVar>==<comparisonVar1>>*break;*case<comparisonVar2>:*<codetoexecuteif<testVar>==<comparisonVar2>>*break;*...*case<comparisonVarN>:*<codetoexecuteif<testVar>==<comparisonVarN>>*break;*default:*<codetoexecuteif<testVar>!=<comparisonVars>>*break;*}**解释说明:*1.<testVar>中的值与每个<comparisonVarX>值(在case语句中指定),如果有一个匹配,*就执行为该匹配提供的语句。如果没有匹配,就执行default部分中的代码。*2.执行完每个部分中的代码后,还需要另一个语句break。*3.在执行完一个case块后,再执行第二个case语句是非法的。*4.每个<comarisonVarX>都必须是一个常数值(字面值或常量)。*5.switch语句对case语句的数量没有限制。**可以使用三种方式防止程序流程从一个case语句转到下一个case语句:*1.break语句将中断switch语句的执行,而执行该结构后面的语句。*2.return语句将中断当前函数的运行,而不是仅中断switch结构的执行。*3.可以使用goto语句跳转到其他case语句或跳出switch结构。*///版本1{intWeekOfDay;Console.Write("(Ver1)Enteraweekofday: ");WeekOfDay=Convert.ToInt32(Console.ReadLine());switch(WeekOfDay){case1:Console.WriteLine("TodayisMonday.");break;case2:Console.WriteLine("TodayisTuesday.");break;case3:Console.WriteLine("TodayisWednesday.");break;case4:Console.WriteLine("TodayisThursday.");break;case5:Console.WriteLine("TodayisFriday.");break;case6:case7:Console.WriteLine("TodayisWeekend.");break;default:return;}}//版本2{intWeekOfDay;Console.Write("(Ver2)Enteraweekofday: ");WeekOfDay=Convert.ToInt32(Console.ReadLine());switch(WeekOfDay){case1:Console.WriteLine("TodayisMonday.");break;case2:Console.WriteLine("TodayisTuesday.");break;case3:Console.WriteLine("TodayisWednesday.");break;case4:Console.WriteLine("TodayisThursday.");break;case5:Console.WriteLine("TodayisFriday.");break;case6:gotocase7;case7:Console.WriteLine("TodayisWeekend.");return;default:gotoEnd;}End:Console.WriteLine("Theweekofdayisunknown.");}Console.ReadKey();}}}