c语言循环的设计,c语言循环结构设计.ppt

《c语言循环结构设计.ppt》由会员分享,可在线阅读,更多相关《c语言循环结构设计.ppt(39页珍藏版)》请在人人文库网上搜索。

1、1,第六章 循环结构程序设计,6.1 循环语句概述 6.2 while语句 6.3 do-while语句 6.4 for 语句 6.5 break、continue和goto语句 6.6 循环的嵌套 6.7 复合结构程序举例 6.8 C语句小结,2,C语言有while 、 do - while 、和for语句三种循环结构语句。,6.1 循环语句概述,3,二、while语句的执行过程 1、求解表达式。如果其值为真(非0),转第2步;否则转第3步。 2、执行循环体语句组,然后转1。 3、执行while语句的下一条语句。,6.2 while语句,一、while语句的一般形式 while (表达式) 。

2、循环体语句组 ,表达式为循环控制条件,4,例6.1 计算并输出1+2+3+n的值,5,二、dowhile语句执行流程 1、执行循环体语句组。 2、计算“循环继续条件”表达式,如果“循环继续条件”表达式的值为非0(真),则转向1继续执行;否则,转向3。 3、执行do-while的下一条语句。,6.3 dowhile语句,一、dowhile 语句的一般形式是:do 循环体语句组 while (循环继续表达式);,6,例6.1 计算并输出1+2+3+n的值,7,循环条件第一次就为假(如输入-1)时会怎样?,例6.1 计算并输出1+2+3+n的值,8,二、执行流程 1、求解表达式1。 2、求解表达式2。

3、。如果其值为真 (非0),执行第3步;否则,转 至第4步。 3、执行循环体语句组,并求解表达式3,然后转向2。 4、执行for语句的下一条语句。,6.4 for语句,一、一般形式: for(表达式1;表达式2;表达式3) 循环体语句组 ,9,例6.1 计算并输出1+2+3+n的值,10,例6.1 计算并输出1+2+3+n的值,11,例6.1 计算并输出1+2+3+n的值,12,例6.1 计算并输出1+2+3+n的值,如何减少循环次数,13,选择三种循环的一般原则,如果循环次数已知,计数控制的循环 用for 如果循环次数未知,条件控制的循环 用while 如果循环体至少要执行一次 用do-whi。

4、le 这只是“一般”原则,不是“原则”,14,6.5 break、continue、goto语句,这一类语句的功能是改变程序的结构,使程序从其所在的位置转向另一处。 一、break语句与Continue语句 为了使循环控制更加灵活,语言提供了break语句和continue语句。 1一般格式: break; continue;,15,它的作用是把流程转向所在结构之后。 在switch分支结构中,使用break语句可以使流程跳出switch分支结构。 同样的,在循环结构中,使用break语句使流程跳出当前的循环层,转向执行该循环结构后面的语句。,2功能 (1)break:强行结束其所在的那一层循。

5、环。 (2)continue:强行结束本次循环。对于for循环,跳过循环体其余语句,转向循环变量增量表达式的计算;对于while和do-while循环,跳过循环体其余语句,但转向循环继续条件的判定。 3break和continue语句对循环控制的影响如下: 二、goto语句 goto被称为无条件转移语句。由两部分组成: goto 标号; 标号: 语句,16,17,18,韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩。

6、信至少有多少兵吗? 设兵数为x,则x应满足: x%5=1 for (x=1; x 5000 ;x+) if (x%5=1 ,“瞎猫碰死耗子”,例6.2 韩信点兵,20,#include main() int x; for (x=1; ;x+) if (x%5=1 ,“死循环”,例6.2 韩信点兵,21,#include main() int x; for (x=1; ;x+) if (x%5=1 ,例6.2 韩信点兵goto,22,#include main() int x; for (x=1; ;x+) if (x%5=1 ,例6.2 韩信点兵break,23,#include #inclu。

7、de main() int x; for (x=1; ;x+) if (x%5=1 ,标准库函数,作用是终止整个程序的执行,强制返回操作系统,例6.2 韩信点兵break,24,#include main() int x; int find = 0; /*置找到标志为假*/ for (x=1; !find ;x+) if (x%5=1 /*置找到标志为真*/ ,结构清晰的程序,例6.2 韩信点兵标志变量,25,使用goto语句的原则,主张少用、慎用,而不是禁用 保证使用之后,程序仍然是单入口,单出口 不要使用一个以上的标号 不要用goto语句往回跳,要向下跳 不要让goto语句制造出永远不会被。

8、执行的代码,26,循环语句的循环体内,又包含另一个完整的循环结构,称为循环的嵌套。嵌套在循环体内的循环称语句称为内循环,外面的循环语句称为外循环。如果内循环体中又有嵌套的循环语句,称为多层循环。While 、do-while、for三种循环都可以互相嵌套。,6.6 循环的嵌套,27,例6.3 输入n值,计算并输出 1! + 2! + 3! + + n!,每次单独计算累加项,28,利用前项 计算后项,例6.3 输入n值,计算并输出 1! + 2! + 3! + + n!,29,C语言允许循环语句与分支结构语句联用,即循环体内可包含一个完整的分支结构,也可以在分支结构下包含一个完整的循环体。这样的。

9、程序结构被称为复合程序结构,复合程序结构同样必须做到嵌套层次清楚。(即搞清楚分支结构的范围以及循环体的范围),6.7 复合结构程序举例,30,例6.4:输出10100之间的全部素数。所谓素数n是指除1和n之外,不能被2(n-1)之间的任何整数整除。 算法设计要点: (1)显然,只要设计出判断某数n是否是素数的算法,外面再套一个for循环即可。 (2)判断某数n是否是素数的算法:根据素数的定义,用2sqrt(n)之间的每一个数去整除n,如果都不能被整除,则表示该数是一个素数。 判断一个数是否能被另一个数整除,可通过判断它们整除的余数是否为0来实现。,31,参考源程序如下: #include ma。

10、in( ) int n=11, j; for( ; nsqrt(n) ) printf(%6d,n); ,循环嵌套时,break和continue只影响包含它们的最内层循环,与外层循环无关,而goto可以跳出多重循环。,32,判断素数用到的库函数,double sqrt(double x) 求x的平方根 #include 在math.h中有常用的数学函数如: fab(x):求x的绝对值 log(x):求lnx的值,x应大于0 log10(x):求lgx的值,x应大于0 exp(x):求ex pow(x,y):求xy sin(x):求sin x的值,x为弧度值,不是角度值 cos(x):求cos。

11、 x的值,x为弧度值,不是角度值,33,例6.5:猜数游戏。由计算机“想”一个100以内的数请你猜,如果你猜对了,则结束游戏,否则计算机给出提示,告诉你所猜的数是太大还是太小,直到你猜中为止。计算机记录你猜的次数,以此可以反映出你猜的水平。,#include #include main() int magic; int guess; int counter=0; randomize(); magic=random(100);,34,do printf(nguess the magic number:); scanf(%d, ,35,猜数游戏用到的库函数,怎样模拟计算机“想”一个数呢? 随机函数。

12、int random(int num) 产生0,num-1 之间的随机数 magic = random(100); #include randominze(); 随机数产生器初始化,36,6.8 C语句小结 C语言的语句可分为以下四类:简单语句、空语句、复合语句和流程控制语句。,简单语句 表达式语句(表达式;) 函数调用语句(函数名(参数表);) 空语句(;) 复合语句(一条或多条语句) 条件语句(if语句,switch语句) 结构化语句 while语句 循环语句 dowhile语句 for语句 流程控制语句 break语句 非结构化语句 continue语句 return语句 非限定转向语句。

13、(goto语句),语言数据操作语句,C,37,一、简单语句 1.表达式语句 (1)表达式语句一般形式:表达式; (2)类别:运算符表达式语句、赋值语句 例:A+; x=1; (3)作用:计算表达式或改变变量的值 函数调用语句: (1)函数调用语句一般形式:函数名(实际参数列表); 例:z=max(a,b);( max:用户自定义函数) sqrt(x) (求x的平方根)(sqrt:库函数) 调用库函数时要注意:在程序中要包含相应的头文件 例如:#include (2)作用:完成特定功能,38,二、空语句 空语句用一个分号表示,其一般形式为: ; 三、复合语句(分程序) 用 括起来的语句,每一个语句后都有“;” 一般形式: 内部数据说明; 语句1; 语句n; 注意: (1)在复合语句中说明的变量,是局部变量, 仅在复合 语句中有效。,39,(2)用一对花括号 将多条语句组合在一起,在语法上相当于一条语句。 例. main( ) int x=1; int x=2; int x=3; printf(“x=%d”, x); printf(“x=%d”, x); printf(“x=%d”, x。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值