翼度科技»论坛 编程开发 .net 查看内容

第六单元 流程控制

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
C# 流程语句分为:顺序结构,选择结构,循环结构。
1. 顺序结构

顺序结构指的是程序一步步向下执行。
  1. int a =10;
  2. int b =a;
  3. a++;
复制代码
2. 选择结构

C# 提供以下类型的选择语句。
声明描述if声明一个if语句包含一个布尔表达式后跟一个或多个语句。if...else声明一个if语句可以跟着一个可选的else语句,当布尔表达式是假的,其执行。嵌套if语句您可以在另一个if or else if语句中使用一个if or else if语句。switch语句switch语句允许一个变量来针对值的列表平等进行测试。嵌套的switch语句您可以在另一个switch语句中使用一个switch语句。if ... else


if .. else 语法
  1. if(bool 表达式)
  2. {
  3.     ...
  4. }
  5. else if(bool 表达式) // 可选的
  6. {
  7.     ...
  8. }
  9. else  // 可选的
  10. {
  11.     ...
  12. }
复制代码
例1:
  1. int score =90;
  2. if(score >= 60)
  3. {
  4.     Console.WriteLine("及格");
  5. }
  6. else
  7. {
  8.     Console.WriteLine("不及格");
  9. }
复制代码
例2:
  1. static void Main(string[] args)
  2. {
  3.     int a = 90;
  4.     Console.WriteLine(GetGrade(a));
  5. }
  6. public static string GetGrade(int score)
  7. {
  8.     if (score>=60)
  9.     {
  10.         return "及格";
  11.     }
  12.     else
  13.     {
  14.         return "不及格";
  15.     }
  16. }
  17. // 简写
  18. public static string GetGrade(int score)
  19. {
  20.     if (score>=60)
  21.     {
  22.         return "及格";
  23.     }
  24.     return "不及格";
  25. }
复制代码
 
例3:
  1. static void Main(string[] args)
  2. {
  3.     int a = 90;
  4.     Console.WriteLine(GetGrade(a));
  5. }
  6. public static string GetGrade(int score)
  7. {
  8.     if (score<60)
  9.     {
  10.         return "不及格";
  11.     }
  12.     else if(score>=60 && score<=70)
  13.     {
  14.         return "一般";
  15.     }
  16.     else if (score > 70 && score <= 80)
  17.     {
  18.         return "良好";
  19.     }
  20.     else
  21.     {
  22.         return "优秀";
  23.     }
  24. }
复制代码
 
执行结果根据当天日期有所不同,我这里执行这天的结果为:
  1. if (score<60)
  2.      return "不及格";
复制代码
C# 9.0 借助于模式匹配
  1. Exp1 ? Exp2 : Exp3;
复制代码
以下实例判断学生的成绩,包含了 default 语句:
  1. switch(expression){
  2.     case constant-expression  :
  3.        statement(s);
  4.        break;
  5.     case constant-expression  :
  6.        statement(s);
  7.        break;
  8.   
  9.     /* 您可以有任意数量的 case 语句 */
  10.     default : /* 可选的 */
  11.        statement(s);
  12.        break;
  13. }
复制代码
 
当上面的代码被编译和执行时,它会产生下列结果:
  1. static void Main(string[] args)
  2. {
  3.     int day = 4;
  4.     switch (day) // 数字,字符串,枚举
  5.     {
  6.         case 1:  // 只能写常量
  7.             Console.WriteLine("Monday");
  8.             break;
  9.         case 2:
  10.             Console.WriteLine("Tuesday");
  11.             break;
  12.         case 3:
  13.             Console.WriteLine("Wednesday");
  14.             break;
  15.         case 4:
  16.             Console.WriteLine("Thursday");
  17.             break;
  18.         case 5:
  19.             Console.WriteLine("Friday");
  20.             break;
  21.         case 6:
  22.             Console.WriteLine("Saturday");
  23.             break;
  24.         case 7:
  25.             Console.WriteLine("Sunday");
  26.             break;
  27.         default:
  28.             Console.WriteLine("Sunday");
  29.             break;
  30.     }   
  31. }
复制代码
if 与 switch 的区别

一:从“优缺点”分析 if…else 优点:使用灵活,代码空间小 ;
缺点:效率低,因为 if else 必须遍历所有的可能值;
switch…case 优点:代码结构清晰,效率高;
C# 9.0 以后,已经完全可以代替if else 结构了。
 
强化练习


  • 业务场景:消费者在图书商城购买图书,下单后需要在支付页面显示订单优惠后的价格。具体优惠规则如下:
规则编号规则名称描述1规则一所购图书总价在100元以下的没有优惠2规则二所购图书总价在100到200元的优惠20元3规则三所购图书总价在200到300元的优惠50元4规则四所购图书总价在300元以上的优惠100元现在需要根据上面的规则计算优惠后的价格。
[code]// 表示购物金额int money = 666;// 所购图书总价在100元以下的没有优惠if (money < 100){    money = money;}else if (money >= 100 && money 200 && money

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具