福到我家 发表于 2023-5-30 10:47:03

第六单元 流程控制

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

顺序结构指的是程序一步步向下执行。
int a =10;
int b =a;
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 语法
if(bool 表达式)
{
    ...
}
else if(bool 表达式) // 可选的
{
    ...
}
else// 可选的
{
    ...
}例1:
int score =90;
if(score >= 60)
{
    Console.WriteLine("及格");
}
else
{
    Console.WriteLine("不及格");
}例2:
static void Main(string[] args)
{
    int a = 90;
    Console.WriteLine(GetGrade(a));
}

public static string GetGrade(int score)
{
    if (score>=60)
    {
      return "及格";
    }
    else
    {
      return "不及格";
    }
}
// 简写
public static string GetGrade(int score)
{
    if (score>=60)
    {
      return "及格";
    }
    return "不及格";

例3:
static void Main(string[] args)
{
    int a = 90;
    Console.WriteLine(GetGrade(a));
}

public static string GetGrade(int score)
{
    if (score<60)
    {
      return "不及格";
    }
    else if(score>=60 && score<=70)
    {
      return "一般";
    }
    else if (score > 70 && score <= 80)
    {
      return "良好";
    }
    else
    {
      return "优秀";
    }

执行结果根据当天日期有所不同,我这里执行这天的结果为:
if (score<60)
   return "不及格";C# 9.0 借助于模式匹配
Exp1 ? Exp2 : Exp3;以下实例判断学生的成绩,包含了 default 语句:
switch(expression){
    case constant-expression:
       statement(s);
       break;
    case constant-expression:
       statement(s);
       break;

    /* 您可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
       break;

当上面的代码被编译和执行时,它会产生下列结果:
static void Main(string[] args)
{
    int day = 4;
    switch (day) // 数字,字符串,枚举
    {
      case 1:// 只能写常量
            Console.WriteLine("Monday");
            break;
      case 2:
            Console.WriteLine("Tuesday");
            break;
      case 3:
            Console.WriteLine("Wednesday");
            break;
      case 4:
            Console.WriteLine("Thursday");
            break;
      case 5:
            Console.WriteLine("Friday");
            break;
      case 6:
            Console.WriteLine("Saturday");
            break;
      case 7:
            Console.WriteLine("Sunday");
            break;
      default:
            Console.WriteLine("Sunday");
            break;
    }   
}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元现在需要根据上面的规则计算优惠后的价格。
// 表示购物金额int money = 666;// 所购图书总价在100元以下的没有优惠if (money < 100){    money = money;}else if (money >= 100 && money 200 && money
页: [1]
查看完整版本: 第六单元 流程控制