C#中的 switch-case 语句

执行过程:

  程序执行到switch处,首先将括号中变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行该case所带的代码,执行完成后,遇到break。

跳出switch-case结构。如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构,什么都不做。

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

[例一]

编写一个控制台程序,输入一个学生的成绩,输出其等级。(优:>=90;良:>=80;中:>=70; 及格:>=60;不及格:<60)

 1 static void Main(string[] args)
 2         {
 3             Console.WriteLine("please input:");
 4             int opition = int.Parse(Console.ReadLine());
 5             switch (opition/10)
 6             {
 7                 case 10:
 8                 case 9:
 9                     Console.WriteLine("youxiu");
10                     break;
11                 case 8:
12                     Console.WriteLine("lianghao");
13                     break;
14                 case 7:
15                     Console.WriteLine("zhong");
16                     break;
17                 case 6:
18                     Console.WriteLine("jige");
19                     break;
20                 case 5:
21                 case 4:
22                 case 3:
23                 case 2:
24                 case 1:
25                 case 0:
26                     Console.WriteLine("bujige");//看这个,如果最后会输出相同的结果,方便起见,可以不在每一个case块后打break,当然也可以打上(如果打break的话就要在每一个有break的块内写输出)
27                     break;
28             }
29             Console.ReadLine();
30 
31         }

[例二]

李四的年终工作评定,如果定为A级,则工资涨500元, 如果定为B级,则工资涨200元,如果定为C级,工资不变,如果定为D级工资降200元,如果定为E级工资降500元.
设李四的原工资为5000,请用户输入李四的评级,然后显示李四来年的工资.

 1  static void Main(string[] args)
 2         {
 3             bool b = true;//注意此处设计bool值的用意,考虑到了还有一种是输错了的情况
 4             double salary = 5000;
 5             Console.WriteLine("请输入李四的年终评定(A, B, C, D, E):");
 6             string level = Console.ReadLine();
 7 
 8             switch (level)//可以填字符串形式
 9             {
10                 case "A"://字符串记得要加双引号
11                     salary += 500;
12                     break;
13                 case "B":
14                     salary += 200;
15                     break;
16                 case "C":
17                     //salary =
18                     break;
19                 case "D":
20                     salary -= 200;
21                     break;
22                 case "E":
23                     salary -= 500;
24                     break;
25                 default:
26                     Console.WriteLine("error, please try again!");
27                     b = false;
28                     break;
29             }
30             if(b)
31             {
32                 Console.WriteLine($"李四明年的工资是{salary}元");
33             }
34             Console.ReadKey();//运行完后等待按键关闭窗口
35         }

c#中switch语句两个case标签之间有代码,却没有break跳出的话,系统会提示错误,控制不能从一个case标签贯穿到另一个case标签.--所以担心出问题的同学就在每个case后打break吧.

 

很简单,带脑子按例子多打两遍就会了

原文地址:https://www.cnblogs.com/SophieWang-cmu/p/13143420.html