《C#图解教程》拾遗十-语句

一、什么是语句

二、表达式语句

三、控制流语句

四、if语句

五、if...else语句

六、while循环

七、do循环

八、for循环

1、for语句中变量的作用域

2、初始化和迭代表达式中的多表达式

初始化表达式和迭代表达式都可以包含多个表达式,只要它们用逗号隔开。

class Program
{
    static void Main(string[] args)
    {
        const int MaxI = 5;
        for(int i = 0, j = 10; i < MaxI; i++, j += 10)
        {
            Console.WriteLine($"{i},{j}");
        }
    }
}

执行结果:

九、switch语句

switch语句实现多路分支:

  • switch语句有一个通常被称为测试表达式或 匹配表达式的参数。之前,这些测试表达式必须是以下数据类型之一:char、string、bool、integer(包括byte、int或long等)或enum,现在C#7.0允许测试表达式为任何类型;
  • switch语句包含0个或多个分支块;
  • 每个分支块都以一个或多个分支标签开头,每个分支标签(或者最后一个分支标签,如果一个分支块中有多个分支标签的话)后面跟着一个模式表达式,该模式表达式将与测试表达式进行比较。如果测试表达式和模式表达式都是整数类型,则使用C#的相等运算符(==)进行比较。在所有其他情况下,则使用静态方法Object.Equals(test,pattern)进行比较。也就是说,对于非整数类型,C#使用深度比较;
  • 每个分支块必须遵守“不穿过规则”,这意味着分支块中的表达语句不能到达终点并且进入下一个分支块。此规则通常通过使用break语句或其他4个跳转语句来结束表达语句列表来实现。但请注意,goto跳转语句不能与非常量switch表达式一起使用;
    • 跳转语句包括break、return、continue、goto和throw;
    • 在这5个用来结束一个分支块的跳转语句中,break语句是最常用的,break语句会切换执行流程到switch语句的末尾;
  • 分支块会按顺序执行,如果其中一个分支块与测试表达式的值匹配,则执行这个分支块,然后控制流会跳转到该分支块中使用的跳转语句指定的位置。由于break语句时最常用的跳转语句,所以通常控制流会跳转到switch语句结束后的第一行可执行代码;

如上图:

  • 测试表达式(也称匹配表达式)TestExpr在结构的顶端求值;
  • 如果TestExpr的值等于第一个分支标签中的模式表达式PatternExpr1的值,将执行该分支标签后边的语句列表,直到遇到一个跳转语句;
  • default分支是可选的,但如果包括了,就必须以一条跳转语句结束;

1、分支示例

static void Main()
{
    for(int x = 1; x < 6; x++)
    {
        switch(x)                           //测试表达式
        {
            case 2:
                Console.WriteLine($"x is {x} -- In Case 2");
                break;
            case 5:
                Console.WriteLine($"x is {x} -- In Case 5");
                break;
            default:
                Console.WriteLine($"x is {x} -- In Default case");
                break;
        }
    }
}

执行结果:

2、其他类型的模式表达式

case标签由关键字case和其后边的模式构成,模式可以是简单的值,例如Hello或者55,也可以是一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值