2020年2月25日流程控制语句Talentscomefromdiligence,andknowledgeisgainedbyaccumulation.天才源于勤奋,知识源于积累。教学目标本章主要介绍选择结构控制语句:if语句、switch语句。循环结构控制语句:do循环语句、while循环语句、for循环语句、foreach语句等。跳转控制语句:break语句、continue语句、goto语句、return语句。通过本章的学习我们将学会分支、循环程序的设计。教学重点if语句使用switch语句for循环语句while循环语句do循环语句foreach语句跳转控制语句7.1分支语句在C#中,提供两种选择语句实现流程的改变:if语句,用于判断特定的条件能否满足,用于单分支选择,也可以实现双分支或通过嵌套实现多分支选择。switch语句,用于多分支选择。7.1.1if语句If语句有3种基本形式:单分支if语句、双分支if语句、多情形选择。1.单分支if语句单分支if语句是最简单的If语句,基本语法如下:if(布尔表达式){…;}7.1.1if语句2.如果/否则If语句如果/否则If语句的基本语法如下:if(布尔表达式){语句块A;}else{语句块B;}7.1.1if语句3.多情形选择的If语句if(布尔表达式1){语句体1;}elseif(布尔表达式2){语句体2;}elseif(布尔表达式3){语句体3;}else{语句体N;}7.1.1if语句if语句将按照下面的方式执行:求布尔表达式的值。如果布尔表达式为真,程序将跳转到分支语句的第一个嵌套语句执行。当程序执行到此嵌套语句的结尾,程序控制将转移到if语句的结尾。如果布尔表达式的值为假,而且分语句中有else分支,程序跳转到分语句的第二个嵌套语句执行。当程序执行到此嵌套语句的结尾时,程序控制将转移到if语句的结尾。如果布尔表达式的值为假,而且分语句中没有else分支,程序控制将转移到if语句的结尾。7.1.2switch语句使用switch语句包括关键字switch和其后的括号表达式和switch块。switch块包含有零个或者多个由括号括起来的switch分支。每个switch分支又由一个或者多个switch标号和跟在它们后面的语句列表组成每一个switch语句最多只能有一个default标号分支。switch语句按照如下方式执行:首先计算switch表达式的值并转换到控制类型。如果swtich表达式的值等于某一个switch分支的常量表达式的值,那么程序控制跳转到这个case标号后的语句列表中。如果switch表达式的值无法与switch语句中任何一个case常量表达式的值匹配而且switch语句中有default分支,程序控制会跳转到default标号后的语句列表中。如果switch表达式的值无法与switch语句中任何一个case常量表达式的值匹配而且switch语句中没有default分支,程序控制会跳转到switch语句的结尾。7.2循环语句循环结构是一种能重复执行某一动作的语言结构,C#中的循环结构主要包括for循环while循环do…while循环foreach循环其中foreach循环主要应用于数组或者集合,本书将在学习数组时介绍这种循环结构。7.2.1for循环For循环语句的基本语法为:for(表达式1;表达式2;表达式3){循环体;}其中表达式1,表达式2,表达式3这3个项都是可选项。7.2.1for循环表达式1为循环控制变量作初始化,循环控制变量可以有一个或多个(用逗号隔开);表达式2为循环控制条件,也可以有一个或者多个语句;表达式3为按规律改变循环控制变量的值。如表达式2省略,并且不采用转移语句,会导致死循环的发生。可以在循环体中的任何位置放置break语句来强制终止for循环,随时跳出for循环。break语句通常包含于if语句中。7.2.2while循环语句使用基本语法为:while(布尔条件表达式){循环体;}7.2.2while循环语句使用while循环根据其布尔表达式的值执行循环体语句零次或者多次。while循环的布尔测试是在循环开始时执行。如果布尔值为false,就不执行循环体。7.2.3do…while循环语句使用do循环的基本语法格式为:do{循环体;}while(布尔条件表达式);7.2.3do…while循环语句使用do…while循环以下述方式执行:执行标记为循环的代码,然后计算while语句的布尔表达式,如果其值为true,就再次执行循环代码。直到while语句的布尔表达式的值为false时,才退出循环在do…while循环的循环体语句中,可用使用break语句跳出循环体,终止循环语句的执行,也可以使用continue语句使程序跳出当前循环,重新开始新的循环7.2.4foreach循环语句使用foreach语句的基本语法格式为:foreach(类型名标识符in表达式){循环体;}7.2.4foreach循环语句使用关于Foreach语句的几点说明:首先,变量用来逐一存放数组元素内容,故该变量声明的类型要和数组的类型一致,且必须声明后才能使用。其次,数组内元素的个数决定循环内程序段重复执行的次数。最后,每次进入循环,会依次将数组元素内容指定给变量,当所有元素都读完后。系统就会离开foreach循环。7.3跳转语句有时需要在循环代码的处理上有更精细的控制,这时就要用到跳转语句,C#提供了5个跳转语句:break:break语句用于跳出包含它的switch,while,do,for,或foreach语句。其目标地址为包含它的switch,while,do,for或foreach语句的结尾continue:continue语句用于重新开始新一次包含它的while,do,for或者foreach语句的执行。其目标地址为直接包含它的while,do,for或者foreach语句的嵌套语句结尾goto:C#允许给代码行加上标签,这样就可以使用goto语句直接跳转到这些代码行上。该语句的优点是:可用非常容易的跳转到指定的位置;但也有一定的缺点,就是过多地使用这个技巧将使代码很难被读懂return:return语句从它所在的子函数返回该子函数的调用者throw:throw语句用于抛出一个异常