黑马程序员 您所在的位置:网站首页 c级工资 黑马程序员

黑马程序员

2024-07-09 21:18| 来源: 网络整理| 查看: 265

———————- Windows Phone 8手机开发、.Net培训、期待与您交流! ———————-

分别用if-else和switch-case(主要演示)来搞定同个工作

题: //李四的年终工作评定,如果定位A级,则工资涨500元,如果B,则涨200,如果C,工资不变,如果D,降200,如果E,降500。设李四原工资5000,请输入评级,然后显示李四的工资。

1) 用if-else来搞定

if-else  1 Console.WriteLine("请输入你对李四的评定等级(A-E)"); 2 string input = Console.ReadLine(); 3 decimal salary = 5000m;//加m表示5000为decimal类型,不加表示int类型。加不加都可以,加是最好的 4 5 if (input == "A") 6 { 7 //salary = salary + 500; 8 salary += 500;//这样比较简单,让salary这个变量自己加了500 9 10 } 11 else if (input == "B") 12 { 13 salary += 200; 14 } 15 else if (input == "C") 16 { 17 } 18 else if (input == "D") 19 { 20 salary -= 200; 21 } 22 else if (input == "E") 23 { 24 salary -= 500; 25 } 26 else 27 { 28 Console.WriteLine("输入有误,只能输入大写ABCDE"); 29 30 } 31 32 Console.WriteLine("李四的工资为:" + salary); 33 34 Console.ReadKey();

调试中,出现两个bug。如果输入的范围不在A~E内,如输入个‘T’值或者小写字母,都会显示李四工资为5000。

解决方案:定义一个bool类型,来判断执行哪个语句。处理完代码:

调试完成后的代码 1 Console.WriteLine("请输入你对李四的评定等级(A-E)"); 2 string input = Console.ReadLine(); 3 decimal salary = 5000m;//加m表示5000为decimal类型,不加表示int类型。加不加都可以,加是最好的 4 bool flag = false; 5 if (input == "A") 6 { 7 //salary = salary + 500; 8 salary += 500;//这样比较简单,让salary这个变量自己加了500 9 10 } 11 else if (input == "B") 12 { 13 salary += 200; 14 } 15 else if (input == "C") 16 { 17 } 18 else if (input == "D") 19 { 20 salary -= 200; 21 } 22 else if (input == "E") 23 { 24 salary -= 500; 25 } 26 else 27 { 28 Console.WriteLine("输入有误,只能输入大写ABCDE"); 29 flag = true; 30 } 31 if (flag == false) 32 { 33 Console.WriteLine("李四的工资为:" + salary); 34 } 35 Console.ReadKey(); 36 }

 //用switch-case实现上面功能switch-case的语法:

switch(表达式) {     case值1:语句块1;     break;(在其他编程语言中不加break可能只会使程序报错,但在c#中break是必须加的,不然就会出错)     case值2:语句块2;     break;     default:语句块3;     break; } switch-case 1 Console.WriteLine("请输入你对李四的评定等级(A-E)"); 2 string input = Console.ReadLine(); 3 decimal salary = 5000; 4 bool flag = false; 5 switch (input)//输入的值如果与input的值想匹配则执行下面A~E的值,如果不匹配则执行default的内容 6 { 7 case"A": 8 salary+=500; 9 break; 10 case"B": 11 salary+=200; 12 break; 13 case"C": 14 break; 15 case"D": 16 salary -= 200; 17 break; 18 case "E": 19 salary -= 500; 20 break; 21 default: 22 Console.WriteLine("你的输入有问题"); 23 flag = true; 24 break; 25 } 26 if (flag == false) 27 { 28 Console.WriteLine("李四的工资为" + salary); 29 } 30 Console.ReadKey(); 31 }

 -------

switch-case的执行过程:

执行过程:首先计算表达式,然后根据计算结果去匹配case后面的值。如果有匹配,则执行匹配后面的语句,直到break语句跳出switch-case。如果所有的case值都不匹配,那么有default则执行default后面的语句,直到break结束。如果没有default则跳出switch-case,什么都不执行。

 

问题: 把       default:                     Console.WriteLine("你的输入有问题");                     flag = true;                     break;移到caseB下面。输入T,会显示什么? //default移到哪都没关系。只有当找不到匹配项的时候,才会走default。跟default的位置没有关系!

 

 

 

———————- Windows Phone 8手机开发、.Net培训、期待与您交流! ———————-

详细请查看:http://edu.csdn.net/heima/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有