




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章程序控制语句 时间 1 5次课 3学时 第6章程序控制语句 程序的执行过程 流程 控制是算法思路实现的逻辑路径 是程序设计的核心 根据结构化程序设计思想 程序的流程主要由3种基本结构组合而成 顺序结构 选择结构和循环结构 它们是现代程序设计的基础 顺序结构就是顺序执行的一组语句 比较好理解 本章主要介绍在C 语言编程中 选择结构和循环结构的程序设计描述语句及应用特征 本章学习重点 掌握应用程序的3大基本结构 顺序结构 选择结构和循环结构掌握选择结构中if语句 switch语句的基本语法掌握循环结构中while语句 do while语句 for语句和foreach in语句基本语法掌握break语句和continue语句基本语法 第6章程序控制语句 6 1选择结构程序设计6 2循环结构程序设计6 3break语句 continue语句和goto语句 6 1选择结构程序设计 6 1 1if语句6 1 2switch语句6 1 3程序举例 6 1选择结构程序设计 在C 语言中 提供了两种进行选择结构程序设计的语句结构 if else语句和switch语句 它们的作用就是根据某个条件是否成立 控制程序的执行流程 6 1 1if语句 if语句是最常用的选择语句 它的功能是根据所给定的条件 常由关系 布尔表达式表示 是否满足 决定是否执行后面的操作 常用的if语句表达形式有3种 If 表达式 语句块 功能 如果表达式的值为真 即条件成立 则执行if语句所控制的语句块 如果表达式的值为假 即条件不成立 则直接执行语句块后面的语句 图6 1示意了这种语句结构的控制流程 6 1 1if语句 图6 1if语句形式1 6 1 1if语句 例6 1 使用if语句 usingSystem classAdd publicstaticvoidMain inta b stringc Console Write 请输入一个数值 c Console ReadLine a int Parse c b 20 if a 10 如果输入的数大于10 进行以下计算Console WriteLine a b 0 1 2 a b a b 程序执行结果 请输入一个数值 23 回车 a b 23 20 43 6 1 1if语句 if 表达式 语句组1 else 语句组2 功能 如果表达式成立 则执行语句组1 然后执行语句组2的下一条语句 如果表达式不成立 则跳过语句组1 执行语句组2 然后执行语句组2的下一条语句 图6 2示意了这种语句结构的控制流程 图6 2if语句形式2 6 1 1if语句 例6 2 比较两数的大小 并输出其中较大的数 usingSystem classCompare publicstaticvoidMain doublea b x Console Write 请输入一个数值 a double Parse Console ReadLine Console Write 请再输入一个数值 b double Parse Console ReadLine if a b x a elsex b Console WriteLine themaxis 0 x 6 1 1if语句 If 表达式1 语句组1 elseif 表达式2 语句组2 elseif 表达式3 语句组3 elseif 表达式n 1 语句组n 1 else 语句组n 功能 当表达式1为真时 执行语句组1 然后跳过整个结构执行下一个语句 当表达式1为假时 跳过语句组1去判断表达式2 若表达式2为真时 执行语句组2 然后跳过整个结构去执行下一个语句 若表达式2为假时 则跳过语句组2去判断表达式3 依次类推 当表达式1 表达式2 表达式n 1全为假时 则执行语句组n 再转而执行下一条语句 图6 3示意了这种语句结构的控制流程 这种语句结构又叫阶梯式结构 6 1 1if语句 图6 3if语句形式3 6 1 1if语句 例6 3 根据输入的学生成绩 显示相应的等级 优 良 中 及格和不及格 usingSystem classStuGrade1 publicstaticvoidMain intscore stringgrade Console Write 请输入学生的成绩 score Int32 Parse Console ReadLine if score 90 grade 优 elseif score 80 grade 良 elseif score 70 grade 中 elseif score 60 grade 及格 elsegrade 不及格 Console WriteLine 该学生的考试成绩等级为 0 grade 在这种梯形式的if结构中 最后的else语句经常作为缺省条件 就是说如果所有其他条件测试都失败 那么最后的else语句会被执行 这里最后的else语句不能少 否则不论输入的成绩为多少 输出都为 不及格 另外 该程序在本处没有对输入数据的合法性做出判断 实际应用时应加上容错代码 6 1 2switch语句 在编写程序时 经常会碰到像例6 3中的情况 要处理多分支的选择问题 当分支情况很多时 虽然if else if语句可以实现 但多层的嵌套使程序变得冗长且不直观 针对这种情况 C 与C C 一样 也提供了switch语句 用于处理多分支的选择问题 switch语句的一般形式 switch 表达式 case常量表达式1 语句组1 break case常量表达式2 语句组2 break case常量表达式n 语句组n break default 语句组n 1 break 其中 表达式 也可以是变量 但必须是能计算出具体的 常量表达式 表示的量 常量表达式 是 表达式 的计算结果 可以是整型数值 字符或字符串 switch语句的执行过程 1 首先计算switch后面的表达式的值 2 将上述计算出的表达式的值依次与每一个case语句的常量表达式的值比较 如果没有找到匹配的值 则进入default 执行语句组n 1 如果没有default 则执行switch语句后的第一条语句 如果找到匹配的值 则执行相应的case语句组语句 执行完该case语句组后 整个switch语句也就执行完毕 因此 最多只执行其中的一个case语句组 然后将执行switch语句后的第一条语句 6 1 2switch语句 例6 4 将例6 3用switch语句完成 本例没有包括100分的情况 usingSystem classStuGrade2 publicstaticvoidMain inttemp score Console Write 请输入学生的成绩 temp Convert ToInt16 Console ReadLine 将输入的数字字符串转换为16位整数score temp temp 10 10 switch score case9 Console WriteLine 你的成绩是 优 break 输入以9开头的成绩一定是90分以上case8 Console WriteLine 你的成绩是 良 break case7 Console WriteLine 你的成绩是 中 break case6 Console WriteLine 你的成绩是 及格 break default Console WriteLine 你的成绩是 不及格 break switch语句的应用 多种情况使用同一种解决方案有时候 可能对于多种情况 都执行相同的代码 例如 对于掷骰子的情况 可能在点数为奇数时执行某种操作 而在点数为偶数时执行另一种操作 这种情况下 可以将多个case语句作为一组 以下举个例子进行说明 6 1 2switch语句 例6 5 掷骰子游戏 usingSystem classThrowRoll publicstaticvoidMain introll 0 Randomrnd newRandom 创建一个存储随机数的变量roll int rnd Next 1 7 生成一个1 6之间的随机数Console WriteLine 开始掷骰子 Console WriteLine 这次掷的骰子是 0 roll switch roll case1 case3 case5 Console WriteLine 骰子是奇数 break case2 case4 case6 Console WriteLine 骰子是偶数 break default Console WriteLine 骰子不在1 6之间 break 6 1 2switch语句 执行多个case语句有时候 需要执行同一个switch语句中的多个case语句 在C 中 可以使用goto命令来实现这种功能 即可以在switch语句中使用goto命令跳转到某个case语句或default语句 以下对上例做了修改 使用了goto语句 switch roll case1 gotocase5 break case2 gotocase6 break case3 gotocase5 break case4 gotocase6 break case5 Console WriteLine 骰子是奇数 break case6 Console WriteLine 骰子是偶数 break default Console WriteLine 骰子不在1 6之间 break 虽然 可以使用goto命令来演示这种情况 但采用例6 5中将多个case语句分组的方法显得更简单清晰 可是有时goto命令确实能给我们提供所需的方案 6 1 3程序举例 例6 6 根据变量name的值执行不同操作 如该变量的值为Robert 则打印 HiBob 如果为 Richard 则打印 HiRich 对于其他情况 则打印 Hix 其中x为变量name的值 usingSystem classPrintName publicstaticvoidMain Console Write 请输入您的姓名 stringname Console ReadLine switch name case Robert Console WriteLine HiBob break case Richard Console WriteLine HiRich break case Barbara Console WriteLine HiBarb break default Console WriteLine Hi 0 name break 6 1 3程序举例 例6 7 建立C 帮助系统 显示C 控制语句的语法 程序将显示包含控制语句的主菜单 然后等待用户的一个选择 当用户选定后 显示所选语句的语法 在本例中 只提供if和switch语句的帮助信息 其他控制语句可类似在本项目中添加 操作步骤 1 建立一个文件 名为Help cs 2 程序开始时显示下列菜单 Helpon ifswitchChooseone 这个菜单可用显示语句实现 Console WriteLine helpon Console WriteLine 1 if Console WriteLine 2 switch Console WriteLine Chooseone 3 程序通过调用Console Read 得到用户的选择 用以下语句实现 choice Console Read 6 1 3程序举例 4 一旦得知用户的选择 程序就使用switch语句显示所选语句的语法 以下给出完整的help cs程序清单 usingSystem classHelp publicstaticvoidMain charchoice Console WriteLine helpon Console WriteLine 1 if Console WriteLine 2 switch Console Write Chooseone choice Char Console Read switch choice case 1 Console WriteLine Theif n Console WriteLine if condition statement Console WriteLine elsestatement break case 2 Console WriteLine Theswitch n Console WriteLine switch expression statement Console WriteLine caseconstant Console WriteLine statementsequence Console WriteLine break Console WriteLine Console WriteLine break default 执行用户的无效输入Console WriteLine selectionnotfound break 6 2循环结构程序设计 6 2 1while语句6 2 2do while语句6 2 3for语句6 2 4foreach语句6 2 5程序举例 6 2循环结构程序设计 在程序中除了使用语句改变流程外 有时还需要重复执行某个代码段多次 为了实现重复执行代码的功能 C 提供了While do while for和Foreach in4种循环语句 6 2 1while语句 while语句可用来实现当条件为 真 时 不断重复执行某个代码块的功能 其语句格式为 while 条件表达式 语句块 while语句的执行流程如图6 4所示 其执行过程如下 1 计算while语句的条件表达式的值 2 如表达式的值为真 则执行循环体 语句块 并改变控制循环变量的值 3 返回while语句的开始处 重复执行步骤 1 和 2 直到表达式的值为假 跳出循环并执行下一条语句 6 2 1while语句 图6 4while语句结构 6 2 1while语句 例6 8 使用while语句 计算 1 2 3 100 usingSystem classSum1 publicstaticvoidMain intsum 0 i 1 while i 100 sum i 循环变量是i i 是用于改变循环变量的 Console WriteLine sum 0 sum 程序运行结果 sum 5050 6 2 2do while语句 do while语句的特点是先执行循环 然后判断循环条件是否成立 其语句格式为 do 语句块 while 条件表达式 while语句的执行流程如图6 5所示 其执行过程如下 1 当程序执行到do语句后 就开始执行循环体语句块 并改变循环变量的值 2 执行完循环体语句后 再对while语句括号内的条件表达式进行判断 若表达式条件成立 为真 转向步骤 1 继续执行循环体语句 否则退出循环 执行下一条语句 6 2 2do while语句 图6 5do while语句结构 6 2 2do while语句 下面通过程序说明do while循环结构的用法 例6 9 使用do while语句 计算 1 2 3 100 usingSystem classSum2 publicstaticvoidMain intsum 0 i 1 do sum i 循环变量是i i 是用于改变循环变量的while i 100 while语句后面的分号不能丢掉Console WriteLine sum 0 sum while和do while语句的区别 do while语句不论条件表达式的值是什么 其循环体语句都至少要执行一次 因为直到程序执行到循环体后面的while语句时 才对条件表达式进行条件判断 而while语句只有当条件表达式的值成立时 才执行循环体语句 如果条件表达式一开始就不成立 则循环体语句一次都不必执行 总之 do while循环是先执行循环体 后判断条件表达式是否成立 而while语句是先判断条件表达式 再决定是否执行循环体 6 2 3for语句 for语句是构成循环的最灵活简便的方法 for语句的一般格式为 for 表达式1 表达式2 表达式3 循环体语句组 for语句的执行流程如图6 6所示 其执行过程如下 1 先计算表达式1的值 2 求解表达式2的值 若表达式2条件成立 则执行for语句的循环体语句组 然后执行下面的第 3 步 若条件不成立 则转到第 5 步 3 求解表达式3 4 转回第2步执行 5 循环结束 执行for语句的下面的一个语句 6 2 3for语句 图6 6for循环结构 6 2 3for语句 例6 10 使用for语句 计算 1 2 3 100 usingSystem classSum3 publicstaticvoidMain inti sum 0 for i 1 i 100 i sum i Console WriteLine sum 0 sum 6 2 3for语句 例6 11 利用for循环嵌套语句 求1 2 10 usingSystem classSm4 publicstaticvoidMain inti k m 1 sum 0 for i 1 i 10 i 外层用于计算每个数的阶乘累加 for k 1 k i k 内层for循环用于计算某个数的阶乘m m k 内层循环体 只有一条语句 可以不用花括号sum sum m m 1 Console WriteLine 1 2 10 0 sum 程序的运行结果为 1 2 10 4037913 6 2 4foreach语句 在C 中 新引进了一种循环语句结构foreach语句 在C C 中没有这个语句 VisualBasic中有这个语句 用于对枚举集合或数组中的每一个元素执行循环体语句 在C 语言中 使用foreach语句也完成同样的功能 foreach语句格式如下 foreach 变量类型迭代变量in集合表达式 循环体语句块 功能 对集合表达式所表示的数组或对象集合中的每一个元素执行一遍循环体语句 其中 集合表达式 是指某个集合或数组 迭代变量 也称循环变量 是一个局部变量 它只在foreach语句范围内有效 用来依次循环存放foreach语句要遍历的数组或集合中的各个元素 所以这个 迭代变量 和 变量类型 都必须与数组或集合中的元素类型相同 并且不能给该迭代变量另赋一个新值 也不能把它当作ref或out参数 否则将发生编译错误 在foreach语句中使用循环体语句遍历某个集合或数组以获得需要的信息 但并不修改它们的内容 对于foreach语句 控制循环次数的是集合或数组中元素的个数 而参与循环体运算的变量数值则是数组的每一个元素值 6 2 4foreach语句 foreach语句的执行过程 1 求解集合表达式的值 生成一种集合类型的实例 现将该实例称为A 而如果A是一种引用类型 且其值为null 则编译会出现空引用异常 2 调用A GetEnumerator 方法可得到一个枚举实例的值 返回的枚举值存放在临时局部变量中 现将此变量称v foreach循环体中的语句无法访问该临时变量v 如果v是一种引用类型 且其值为null 则会出现NullReferenceException溢出异常 3 通过求解调用v MoveNext 方法 将枚举推进到下一个元素 4 如果调用v MoveNext 方法返回值为true 则执行第 5 6 步 5 通过求解访问v Current属性的值来获得当前枚举数值 并将该值显式转换成foreach语句中规定的 变量类型 并将结果值保存到 迭代变量 中 以使foreach语句循环体中的语句能够访问它 6 程序开始执行foreach语句循环体中的语句 如果执行到语句的终点 也可能是执行一条continue语句 就开始执行下一次foreach迭代 7 如果调用v MoveNext 方法返回的值为false 则跳出foreach循环 转而执行foreach结构后面的下一条语句 6 2 4foreach语句 1 对数组使用foreach语句foreach语句可用于为数组中的每一个元素执行一遍循环体中的语句 以下举例说明使用方法 例6 12 打印二维数组中的各元素 usingSystem classMyArray1 publicstaticvoidMain int arry 1 3 5 7 2 4 6 8 定义一个32位整数类型的二维数组foreach intelementsinarry 显示二维数组中各元素Console Write 0 elements 程序输出结果 1 3 5 7 2 4 6 8 本程序中变量arry就代表foreach语句中的数组元素的集合表达式 elements就是迭代变量 并且该变量的数据类型必须与数组元素的数据类型一致为int型 根据上述foreach语句可知 执行过程是依次从数组arry中取出一个元素存放到迭代变量elements中显示输出 6 2 4foreach语句 例6 13 用foreach语句计算数组中的奇数和偶数之和 usingSystem classMyArray2 publicstaticvoidMain intoddSum 0 evenSum 0 int arry newint 0 1 2 5 7 8 11 13 123 43 44 定义32位整数类型数组foreach intelemValueinarry if elemValue 2 0 evenSum elemValue 这里是存放数组元素的迭代变量elemValue参与运算elseoddSum elemValue Console WriteLine 数组中奇数的和为 0 偶数的和为 1 oddSum evenSum 程序执行结果 数组中奇数的和为 203 偶数的和为 54 6 2 4foreach语句 例6 14 显示3个作家发表的著作 usingSystem classBooksAuthors publicstaticvoidMain stringchoice string cBooks newstring JaneEyre TheProfessor Villette 一个作者的书名string eBooks newstring WutheringHeights 同上string aBooks newstring AgnesGrey TheTenantofWildfellHall 同上Console WriteLine Pleaseselectanauthor Console WriteLine Charli Console WriteLine Emily Console WriteLine Anne choice Console ReadLine 从键盘输入作家名 选择作家switch choice case Charli Console Write Charli的著作有 foreach stringcincBooks Console WriteLine 0 c break case Emily Console Write Emily的著作有 foreach stringeineBooks Console WriteLine 0 e break case Anne Console WriteLine Anne的著作有 foreach stringainaBooks Console WriteLine 0 a break default Console WriteLine 你的选择无效 break 6 2 4foreach语句 例6 15 使用foreach语句遍历数据列表 并打印所有元素 foreach语句可以枚举一个集合中的所有元素 并对这些元素执行一系列的操作 usingSystem usingSystem Collections classCollecForeach1 staticvoidWriteList ArrayListlist 定义打印数据列表数据的方法 foreach objectobjinlist 迭代变量是一个对象 inti int obj 拆箱Console Write 0 obj Console Write 0 i Console WriteLine staticvoidMain ArrayListlist newArrayList 创建数据列表对象for inti 0 i 10 i list Add i WriteList list 程序运行结果 01 12 23 34 45 56 67 78 89 910 6 2 4foreach语句 例6 16 使用foreach语句读取所有环境变量 usingSystem usingSystem Collections classCollecForeach2 publicstaticvoidMain IDictionaryenVars Environment GetEnvironmentVariables 调用获取环境参数的方法Console WriteLine 显示 0 个环境变量参数 enVars Keys Count foreach stringstrKeyinenVars Keys Console WriteLine 0 1 strKey enVars strKey ToString 在本程序中 对GetEnvironmentVariables 的调用返回一个Idictionary类型接口 它是 NET框架中的字典接口 通过Idictionary接口 可以访问两个集合 Keys和Values 在本例中 foreach语句使用了Keys 并查找基于当前Keys的值 6 2 4foreach语句 2 对集合使用foreach语句对于初级读者 本小节内容可在学完 类 以后学习 若要循环访问集合 在foreach语句中集合必须满足下列条件 集合类型必须是interface class或struct类型 还必须包括返回类型的GetEnumerator的实例方法 迭代变量类型包含一个Current属性 返回集合的当前元素 和MoveNext 方法 有3种使用集合的方法 使用上述给出的集合应满足的条件创建一个集合 此集合只能用于C 程序 使用上述给出的集合应满足的条件创建一个一般的集合 并实现Ienumerable接口 则此集合可用于其他语言 如VisualBasic 在集合中使用一个预定义的集合 6 2 4foreach语句 例6 17 对C 语言集合使用foreach语句 usingSystem classMyCollection 定义集合 int items publicMyCollection items newint 5 11 22 33 44 55 publicMyEnumeratorGetEnumerator returnnewMyEnumerator this publicclassMyEnumerator 定义enumerator类 intnIndex MyCollectioncollection publicMyEnumerator MyCollectioncoll collection coll nIndex 1 publicboolMoveNext 6 2 4foreach语句 nIndex return nIndex collection items GetLength 0 publicintCurrent get return collection items nIndex publicclassMainClass publicstaticvoidMain MyCollectioncol newMyCollection Console WriteLine 集合中的数据为 foreach intiincol 显示集合元素 Console Write 0 i Console WriteLine 程序运行结果 集合中的数据为 12 44 33 2 50 6 2 4foreach语句 例6 18 对通用集合使用foreach语句 usingSystem usingSystem Collections publicclassMyCollection IEnumerable 定义集合 实现Ienumerable接口 int items publicMyCollection items newint 5 11 22 33 44 55 publicMyEnumeratorGetEnumerator returnnewMyEnumerator this IEnumeratorIEnumerable GetEnumerator returnGetEnumerator publicclassMyEnumerator IEnumerator 定义enumerator类 实现Ienumerator接口 intnIndex MyCollectioncollection publicMyEnumerator MyCollectioncoll collection coll nIndex 1 6 2 4foreach语句 publicvoidReset nIndex 1 publicboolMoveNext nIndex return nIndex collection items GetLength 0 publicintCurrent get return collection items nIndex objectIEnumerator Current get 6 2 4foreach语句 return Current publicclassMainClass publicstaticvoidMain string args MyCollectioncol newMyCollection Console WriteLine 集合中的数据为 foreach intiincol 显示集合元素 Console Write 0 i Console WriteLine 程序运行结果 集合中的数据为 11 22 33 44 55 6 2 4foreach语句 例6 19 使用Hashtable集合类 本例使用了预定义的Hashtable集合类 为了使用这个类及其成员 必须在程序中使用System Collections命名空间 可以使用Add方法向Hashtable对象中添加项目 usingSystem usingSystem Collections publicclassMainClass publicstaticvoidMain string args Hashtableziphash newHashtable 定义Hashtable对象ziphash Add 210000 南京 使用Add 方法添加项目ziphash Add 230000 合肥 ziphash Add 350000 福州 ziphash Add 330000 南昌 ziphash Add 410000 长沙 Console WriteLine ZipCode tCity foreach stringzipinziphash Keys Console WriteLine zip t t ziphash zip 程序运行结果 ZipCodeCity410000长沙210000南京350000福州230000合肥330000南昌 6 2 5程序举例 例6 20 改善C 帮助系统 本系统对6 1 3节中的C 帮助系统进行扩展 增加for while do while循环的语法 并循环检查用户的菜单选择 直到输入一个有效的响应为止 操作步骤 1 将Help cs复制到新文件Help2 cs中 2 使用以下循环来改变显示选项的程序部分 do Console WriteLine helpon Console WriteLine 1 if Console WriteLine 2 switch Console WriteLine 3 for Console WriteLine 4 while Console WriteLine 5 do while n Console WriteLine Chooseone do choice char Console Read while choice n choice r while choice 5 do while嵌套循环是用来除去可能出现在输入流中的任何虚假回车和换行符 这样变化之后 程序将循环显示主菜单 直到输入的响应在1到5之间 6 2 5程序举例 3 扩展switch语句 使其包含for while do while循环的帮助信息 程序清单如下 usingSystem classHelp2 publicstaticvoidMain charchoice do Console WriteLine helpon Console WriteLine 1 if Console WriteLine 2 switch Console WriteLine 3 for Console WriteLine 4 while Console WriteLine 5 do while n Console WriteLine Chooseone do choice char Console Read while choice n choice r while choice 5 Console WriteLine n 6 2 5程序举例 switch choice case 1 Console WriteLine theif n Console WriteLine if condition statement Console WriteLine elsestatement break case 2 Console WriteLine theswitch n Console WriteLine switch expression Console WriteLine caseconstant Console WriteLine statementsequence Console WriteLine break Console WriteLine Console WriteLine break case 3 Console WriteLine thefor n Console WriteLine for init condition iteration Console WriteLine statement break case 4 Console WriteLine thewhile n Console WriteLine while condition statement break case 5 Console WriteLine thedo while n Console WriteLine do Console WriteLine statement Console WriteLine while condition break 6 3break语句 continue语句和goto语句 6 3 1break语句6 3 2continue语句6 3 3goto语句6 3 4程序举例 6 3break语句 continue语句和goto语句 break语句 continue语句和goto语句也称作跳出 继续和转向语句 6 3 1break语句 break语句通常用在switch语句和各种循环语句中 Break语句的使用格式为 break 在switch语句中 break语句的作用是使程序流程跳出switch语句结构 在各种循环语句中 break语句的作用是使程序终止整个循环 注意 如是多重循环 break不是使程序跳出所有循环 而只是使程序跳出break本身所在的循环 6 3 1break语句 例6 21 任意给定一个整数n 判断其是否为素数 若n不能被2 3 n 1中的任意一个数整除 则n为素数 usingSystem classPrime staticvoidMain inti 1 n Console WriteLine 判断一个数是否是素数 Console Write 请输入一个正数n n Int32 Parse Console ReadLine while i n if n i 0 Console WriteLine 不是素数 break 用break终止循环 if i n Console WriteLine 是素数 该程序在输入某个数n后 执行while语句 判断n是否能被i整除 如能被i整除 则程序输出 不是素数 的信息 并执行break语句退出循环 此时i小于n 如不能被i整除 则将i加1再进行判断 如果直至i n 1时 n都不能被i整除 此时再将i加1 则i等于n 这样就不满足while循环的条件 程序会退出while循环 转而执行其后面的if语句 判断出i与n相等 并输出 是素数 的信息 6 3 2continue语句 continue语句用于各种循环语句中 continue语句的使用格式为 continue continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环 6 3 2continue语句 例6 22 输出100以内所有能被7整除的数 usingSystwm classContinue publicstaticvoidMain for inti 1 i 100 i if i 7 0 continue i不能被7整除时 执行continue语句Console Write 0 t i Console WriteLine 程序的执行结果为 714212835424956637077849198continue语句与break语句的区别 continue语句用于结束本次循环 即跳过循环体中continue语句下面尚未执行的语句 再判断表达式的条件 以决定是否执行该循环体的下一次循环 而break语句则是终止当前整个循环 不再进行条件表达式的判断 在while和do while语句中 continue语句用于把程序流程转至执行条件测试部分 而在for循环中 则转至表达式3处 以改变循环变量的值 6 3 3goto语句 goto语句是一种无条件转移语句 goto语句的格式为 goto标号 其中 标号 是程序中一个有效的标识符 该标识符后须加一个冒号 一起出现在程序的某处 执行goto语句后 程序将跳转到该标号处并执行其后的语句 6 3 3goto语句 例6 23 使用goto语句 usingSystem classGoto publicstaticvoidMain inti 0 j 0 k 0 for i 0 i 10 i for j 0 j 10 j for k 0 k 10 k Console WriteLine i j k 0 1 2 i j k if k 3 gotostop 直接跳转到stop语句标号 stop Console WriteLine stoped i j k 0 1 2 i j k 程序执行结果 i j k 0 0 0i j k 0 0 1i j k 0 0 2i j k 0 0 3stoped i j k 0 0 3 6 3 4程序举例 例6 24 完成C 帮助系统 我们现对前面建立的C 帮助系统做最后的完善 增加break continue和goto的语法 还允许用户请求多条语句的语法 我们通过增加一个外层循环来实现这些功能 并让这个循环一直运行 直到用户输入q要求退出为止 操作步骤 1 将help2 cs复制到新文件Help3 cs中 2 用一个无限循环将程序代码封装起来 当输入 q 时 用break中断此循环 由于此循环封装了所有程序代码 所以退出此循环会导致程序的终止 3 原程序改变如下 do Console WriteLine helpon Console WriteLine 1 if Console WriteLine 2 switch Console WriteLine 3 for Console WriteLine 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB61T 838-2014 大豆 宝豆6号规范
- 公路施工废弃物回收与处理方案
- 城市公园绿地水体净化方案
- 水库防汛应急预案方案
- 装修施工质量监督管理方案
- 2025四川广元市剑阁县人力资源和社会保障局服务期满“三支一扶”计划人员中考核招聘乡镇事业单位人员8人考试参考试题及答案解析
- 山东省枣庄市峄城区2024-2025学年八年级下学期期末质量检测英语试题(含笔试答案无听力)
- 湖南省长沙市芙蓉区2024-2025学年七年级下学期6月期末考试数学试卷(含答案)
- 2025年癫痫药物试题及答案
- 2025天津工业大学第三批招聘(博士或副高级及以上专业技术职务岗位)19人备考练习题库及答案解析
- 以史为帆明方向+少年立志向未来+课件-2025-2026学年上学期主题班会
- 2025年医卫类病理学技术(中级)专业知识-专业实践能力参考题库含答案解析(5套试卷)
- 2025上海科技馆事业单位工作人员招聘10人笔试备考题库及答案解析
- 八年级语文上册期末考点专题17 新闻阅读(解析版)
- 【初二】【八年级】【道法】2025【秋】上学期开学第一课【统编版】(课件)
- 监狱消防安全应急预案
- 军事类面试题目及答案
- 2025巡护员考试题库及答案
- 产科专科护士结业汇报
- (完整版)采购评审专家考试试题库(附完整答案)
- 河北广电频道管理办法
评论
0/150
提交评论