CSharp(C#)语言_第七章(语句)

2022-10-06 08:55:34

7.1 什么是语句

C#中的语句跟C和C++中的语句非常类似
    语句是描述某个类型或让程序执行某个动作的源代码指令

语句的种类主要有3种:
    ■ 声明语句 声明类型或变量
    ■ 嵌入语句 执行动作或管理控制流
    ■ 标签语句 控制跳转

简单语句由一个表达式和后面跟着的分号组成

块是由一对大括号括起来的语句序列。括起来的语句可以包括:
    ■ 声明语句
    ■ 嵌入语句
    ■ 标签语句
    ■ 嵌套块

空语句:仅由一个分号组成
使用环境:语言的语法需要一条嵌入语句而程序逻辑又不需要任何动作

7.2 控制流语句

C#提供与现代编程语言相同的控制流结构

条件执行依据一个条件执行或跳过一个代码片段。条件执行语句如下:
    ■ if
    ■ if…else
    ■ switch

循环语句重复执行一个代码片段。循环语句如下:
    ■ while
    ■ do
    ■ for
    ■ foreacha

跳转语句把控制流从一个代码片段改变到另一个代码片段中的指定语句。跳转语句如下:
    ■ break
    ■ continue
    ■ return
    ■ goto
    ■ throwa

条件执行和循环结构(除了foreach)需要一个测试表达式或条件以决定程序应当在哪里继续执行

7.3 分支结构

7.3.1 单分支语句
if(条件表达式){//满足条件的代码块}
7.3.2 双分支语句
if(条件表达式){//满足条件的代码块}else{//不满足条件的代码块}
7.3.3 多分支语句
if(条件表达式1){//满足条件 1 的代码块代码块}elseif(条件表达式2){//满足条件 2 的代码块代码块}else{//不满足条件 1 和 2 的代码块代码块}
7.3.3 嵌套语句
if(条件表达式1){if(条件表达式2){//同时满足条件 1 和 2 的代码块代码块}else{//满足条件 1 不满足条件 2 的代码块代码块}}else{//不满足条件 1 的代码块}
7.3.4 switch 分支语句格式:
switch(表达式){case1//代码块breakcase2//代码块break// 必须有 breakdefault://代码块break;}

7.4 循环结构

7.4.1 while 循环

先是否符合条件,若符合进入循环体,若不符合直接跳出

while(条件){//循环体}
7.4.2 do - while 循环

先进行一次循环,再判断是否符合条件,若符合继续进行循环,若不符合跳出

do{//循环体}while(条件);
7.4.3 for 循环
for(初始化语句;条件语句;控制语句){//循环体}
7.4.4 foreach 循环
foreach(数据类型变量名in 数组或集合){//语句块}

7.5 跳转语句

当控制流到达跳转语句时,程序执行被无条件转移到程序的另一部分。跳转语句包括:

break
continue
return
goto
throw

break 跳出当前循环,不执行后面的循环
continue 跳出当次循环,继续下次循环
return 将控制返回到调用函数的成员,而且还能返回一个值

7.6 标签语句

标签语句由一个标识符后面跟着一个冒号再跟着一条语句组成。它有下面的形式:
Identifier : Statement
标签语句的执行完全如同标签不存在一样,并仅执行Statement部分

给语句增加一个标签允许控制从代码的其他部分转移到该语句

标签语句只允许用在块内部

        标签有它们自己的声明空间,所以标签语句中的标识符可以是任何有效的标识符,包括那些可能已经在重叠的作用域内声明的标识符,比如本地变量或参数名

例如,下面的代码展示了标签的有效使用,该标签和一个本地变量有相同的标识符

{int xyz=0;//变量xyz
	xyz: Console.WriteLine("No problem.");//标签xyz}

该标识符不能是:
    ■ 关键字
    ■ 在重叠范围内和另一个标签标识符相同

7.6.1 标签语句的作用域

标签语句不能从它的声明所在的块的外部可见(或可访问)。标签语句的作用城为:
    ■ 它声明所在的块
    ■ 任何嵌套在该块内部的块

7.7 goto 语句

goto语句无条件转移控制到一个标签语句。它的一般形式如下,其中Identifier是标签语句的标识符:
goto Identifier;

goto语句必须在标签语句的作用域之内
    ■ goto 语句可以跳到它本身所在块内的任何标签语句,或跳出到任何它被嵌套的块内的标签语句
    ■ goto 语句不能跳入任何嵌套在该语句本身所在块内部的任何块

ps:
使用 goto 语句是非常不好的,因为它会导致弱结构化的、难以调试和维护的代码

7.8 using语句

        某些类型的非托管对象有数量限制或很耗费系统资源。在代码使用完它们后,尽可能快地释放它们是非常重要的。using语句有助于简化该过程并确保这些资源被适当地处置(dispose)

7.9 其他语句

语句描述
checked、unchecked控制溢出检查上下文
foreach遍历一个集合的每个成员
try、throw、finally处理异常
return将控制返回到调用函数的成员,而且还能返回一个值
yield用于迭代
  • 作者:黑夜中的潜行者
  • 原文链接:https://blog.csdn.net/qq_43562262/article/details/105155576
    更新时间:2022-10-06 08:55:34