[工学]C语言第三章下
莆田学院现代教育技术中心 2004年3月 第三章 C程序的流程控制 五、循环结构程序设计 采用循环(或称重复)结构是计算机程序的一个重要特征。计算机运算速度快,最宜于用于重复性的工作。 循环是在循环条件为真时计算机反复执行的一组指令(循环体)。 循环控制通常有两种方式: ◆计数控制 事先能够准确知道循环次数时用之 用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。精确迭代 ◆标记控制 事先不知道准确的循环次数时用之 由专门的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行循环结构后的语句。近似迭代,也称逐次逼近法 兔子繁殖问题(斐波那契数列问题) 著名意大利数学家斐波那契(Fibonacci)1202年提出一个有趣的问题。某人想知道一年内一对兔子可以生几对兔子。他筑了一道围墙,把一对大兔关在其中。已知每对大兔每个月可以生一对小兔,而每对小兔出生后第三个月即可成为“大兔”再生小兔。问一对小兔一年能繁殖几对小兔? 分析:▲表示大兔,△表示小兔 五、循环结构程序设计 在C语言中可用以下语句构成循环: if … goto while do … while for 其中if … goto是通过编程技巧(if语句和goto语句组合)构成循环功能。而且goto语句将影响程序流程的模块化,使程序可读性变差,所以结构化程序设计主张限制goto语句的使用。 其他三种语句是C语言提供的循环结构专用语句。 五、循环结构程序设计 循环结构两大要素: 循环条件 p 结束循环的条件表达式 循环体 A 循环执行的语句或语句组 设置循环条件要特别注意确定: 循环变量的初值 循环变量的终值 循环变量的变化规律 五、循环结构程序设计1、if … goto语句循环结构 五、循环结构程序设计2、while语句循环结构 P91 五、循环结构程序设计3、do…while语句循环结构 五、循环结构程序设计3、do…while语句循环结构 示例 【例五】从键盘输入一个整数12456,分析以下程序运行结果。 五、循环结构程序设计4、for语句循环结构 p99 五、循环结构程序设计4、for语句循环结构 p99 一般形式 for (表达式1;条件表达式;表达式3) 循环语句(组); 用于构成计数型当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。 表达式1: 整个循环中只执行1次,常用来对循环变量设置初值 条件表达式(表达式2): 其值为真(非0)时继续执行循环语句(组),否则结束循环 表达式3: 常用于循环变量值的更新(循环体的一部分每次循环语句组执行完后执行一次) 五、循环结构程序设计5、循环控制结构中的其它关键词 P105 break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可! break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可! break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可! break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可! 【例】 判断一个数是否素数问题(另一种解法) 程序