一、作用
用来处理多条件的定值的判断。
二、语法
switch(变量或者表达式的值) { case 值1:要执行的代码; break; case 值2:要执行的代码; break; case 值3:要执行的代码; break; .......... default:要执行的代码; break; }
执行过程:
程序执行到switch处,首先将括号中变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行该case所带的代码,执行完成后,遇到break。跳出switch-case结构。如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构,什么都不做。
三、实例
【练习1】李四的年终工作评定,如果定为A级,则工资涨500元, 如果定为B级,则工资涨200元,如果定为C级,工资不变,如果定为D级工资降200元,如果定为E级工资降500元.设李四的原工资为5000,请用户输入李四的评级,然后显示李四来年的工资.
bool b = true; double salary = 5000; Console.WriteLine("请输入李四的年终评定(A、B、C、D、E)");//A、B、C、 D、E string level = Console.ReadLine(); switch (level) { case "A": salary += 500; break; case "B": salary += 200; break; case "C": break; case "D": salary -= 200; break; case "E": salary -= 500; break; default: Console.WriteLine("输入的有误,请重新输入"); b = false; break; } if (b) { Console.WriteLine("李四明年的工作是{0}元", salary); } Console.ReadKey();
【练习2】让用户输入姓名,然后显示出这个人上辈子是什么职业。
Console.WriteLine("请输入姓名,我们将显示出来这个人上辈子的职业"); string name = Console.ReadLine(); //老杨,老苏,老邹,老马,老虎,老牛 switch (name) { case "老杨": Console.WriteLine("上辈子是抽大烟"); break; case "老苏": Console.WriteLine("上辈子是贵妃"); break; case "老邹": Console.WriteLine("上辈子是驸马爷"); break; case "老马": case "老牛": Console.WriteLine("上辈子是农民"); break; default: Console.WriteLine("不知道他上辈子是的职业"); break; } Console.ReadKey();