1、2020年4月13日 流程控制语句 Talentscomefromdiligence andknowledgeisgainedbyaccumulation 天才源于勤奋 知识源于积累 教学目标 本章主要介绍选择结构控制语句 if语句 switch语句 循环结构控制语句 do循环语句 while循环语句 for循环语句 foreach语句等 跳转控制语句 break语句 continue语句 goto语句 return语句 通过本章的学习我们将学会分支 循环程序的设计 教学重点 if语句使用switch语句for循环语句while循环语句do循环语句foreach语句跳转控制语句 7 1分支语句
2、 在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 语句体3 else 语句体N 7 1 1if语句 if语句将按照下面的方式执行 求布尔表达式的值 如果布尔表达式为真 程序将跳转到分支语句的第一个嵌套语句执行 当程序执行到此嵌套语句的结尾 程序控制将转移到if语句的结尾 如果布尔表达式的值为假 而且分语句中有else分支 程序跳转到分语句的第二个嵌套语句执行 当程序执行到此嵌套语句的结尾时 程序控制将转移到if语句的结尾 如果布尔表达式的值为假 而且分语句中没有else分支 程序控制将转移到if语句的结尾 7 1 2switch语句使用 switch语句包括关键字switch和其后的括号表达式和switch块 switch块包含有零
4、个或者多个由括号括起来的switch分支 每个switch分支又由一个或者多个switch标号和跟在它们后面的语句列表组成每一个switch语句最多只能有一个default标号分支 switch语句按照如下方式执行 首先计算switch表达式的值并转换到控制类型 如果swtich表达式的值等于某一个switch分支的常量表达式的值 那么程序控制跳转到这个case标号后的语句列表中 如果switch表达式的值无法与switch语句中任何一个case常量表达式的值匹配而且switch语句中有default分支 程序控制会跳转到default标号后的语句列表中 如果switch表达式的值无法与swi
5、tch语句中任何一个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为循环控制变量作初始化 循环控制变量可以有一个或多个 用逗号隔
6、开 表达式2为循环控制条件 也可以有一个或者多个语句 表达式3为按规律改变循环控制变量的值 如表达式2省略 并且不采用转移语句 会导致死循环的发生 可以在循环体中的任何位置放置break语句来强制终止for循环 随时跳出for循环 break语句通常包含于if语句中 7 2 2while循环语句使用 基本语法为 while 布尔条件表达式 循环体 7 2 2while循环语句使用 while循环根据其布尔表达式的值执行循环体语句零次或者多次 while循环的布尔测试是在循环开始时执行 如果布尔值为false 就不执行循环体 7 2 3do while循环语句使用 do循环的基本语法格式为 do
7、 循环体 while 布尔条件表达式 7 2 3do while循环语句使用 do while循环以下述方式执行 执行标记为循环的代码 然后计算while语句的布尔表达式 如果其值为true 就再次执行循环代码 直到while语句的布尔表达式的值为false时 才退出循环在do while循环的循环体语句中 可用使用break语句跳出循环体 终止循环语句的执行 也可以使用continue语句使程序跳出当前循环 重新开始新的循环 7 2 4foreach循环语句使用 foreach语句的基本语法格式为 foreach 类型名标识符in表达式 循环体 7 2 4foreach循环语句使用 关于Fo
8、reach语句的几点说明 首先 变量用来逐一存放数组元素内容 故该变量声明的类型要和数组的类型一致 且必须声明后才能使用 其次 数组内元素的个数决定循环内程序段重复执行的次数 最后 每次进入循环 会依次将数组元素内容指定给变量 当所有元素都读完后 系统就会离开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语句用于抛出一个异常