c#笔记6

1、语句

语句有三种类型:声明语句(声明类型或变量)、嵌入语句(执行动作或管理控制流)、标签语句(控制跳转)

控制流语句:

 1、条件语句:

 1.1、if语句:TestExpr如果为ture,则执行Statement,如果为false,则跳过Statement不执行。

 Statement两句及以上就需要大括号

1.2、if..else...语句:如果Testment为true,则执行Statementq1,否则执行Statement2。

可以嵌套:(经典用法:区分成绩等级)

 1.2、switch语句:实现多路分支,哪个分支的Expr与测试表达式TestExpr的值匹配,就执行哪个分支的StatementList。 注意带上break才能实现不穿透。

特别的用法:

 

 case后面的语句可以不是预定义类型的常量,可以是类型,还可以用when加限制条件。

但是注意,编译错误那里是因为不可能执行到哪个语句,不能把限制更多的语句放到限制少的语句后面。

注意:在c#中不可以执行完一个switch段中的代码然后直接执行下一个switch段。但是可以接受多个分叉共同执行某个代码的,只要分支:后面没有可执行语句,例如:

 以下也满足“不穿过规则”:

 2、循环语句

2.2、while循环:首先求TestExpr的值,如果为true,执行Statement,再求值,真就继续执行,直到为假,跳出循环。

 要想让循环不是一个死循环,循环体里应该有不断让测试表达式逼向false的语句,例如递增/递减。

例如:

 2.3、do循环:首先执行一次statement,然后计算Testexpr的值,如果为真,循环执行statement,如果为假,跳出循环。所以do循环至少执行一次statement。

 

 2.3、for循环:在for循环开始前,先执行Initializer,之后计算TestExpr的值,如果为真,执行Statement,之后执行IterationExpr,再次计算TestExpr的值,如果为真,继续执行Statement,如此循环,直到TestExpr为假跳出循环。

 有些部分是可选的,;不能省略,如果TestExpr也省了,那就一直是true,变成死循环了。

例如:

for循环的变量的作用域:Initializer中的变量的作用域仅限于for循环内部,通常都命名为i、j、k。

Initializer和IterationExpr中的表达式可以是多个表达式,需要用“,” 隔开。

3、跳转语句

3.1、break语句:跳出最内层封装语句,可以用在switch、for、foreach、while、do

3.2、continue语句:导致程序执行跳转到循环的最内层封装语句的顶端,可以用在:for、foreach、while、do,例如:

 3.3、goto语句:无条件的将控制跳转至标签语句,goto语句必须在标签语句的作用域内。

 例如:

4、标签语句:由一个标识符后面:再跟着一个语句组成。执行的时候就好像标签不存在一样,指挥执行后面的语句,标签的作用是允许控制从代码的其他部分跳转至该语句。标签语句只允许在块中使用。

 标签有自己的声明空间,所以标识符可以是任意有效的标识符,甚至可以是在重叠作用域内声明的标识符,比如已经声明该名称的局部变量或参数名,但是!不可以与其他标签重名。

标签语句作用域:它声明所在的块以及嵌套的块内部。

5、using语句:某些类型的非托管对象有数量限制或很耗费资源。在代码使用完之后,应尽快释放。using语句有助于简化该过程并确保这些资源被适当处置。

using语句的作用:资源的使用过程包括:分配资源、使用资源、处置资源。在使用资源的过程中如果遇到意外的运行时错误,处置资源的代码有可能得不到执行。using语句就可以帮助减少意外的运行时问题带来的潜在问题。

处理异常的标准做法是,将有可能发生异常的代码块放进try块中,把 无论是否发生异常都要执行的代码放进finnally块中,其实using语句也是这么做的,它的任务是:分配资源、把Statement放进try中,创建资源的Dispose方法的调用,并把它放进finnally中。

例如:

using语句还可以用于相同类型的多个资源,资源声明“,”隔开,还可以嵌套使用。

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值