程序设计和C语言案例 (5).ppt
《程序设计和C语言案例 (5).ppt》由会员分享,可在线阅读,更多相关《程序设计和C语言案例 (5).ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C程序设计基础知识编程实践算法理解科学思维20195 5 5 5循环结构程序设计第第第第章章章章目 录5.1为什么要循环控制5.2用while语句实现循环5.3用dowhile语句实现循环5.4用for语句实现循环5.5循环的嵌套5.6几种循环的比较5.7改变循环执行的状态5.8循环程序举例为什么要循环控制循环结构5.15.1 为什么需要循环控制是否重复书写代码即可实现?输入全班人的每个人5门课的成绩统计每个人的平均成绩查询出不及格的人应用中的需求延迟符在编程时未知重复次数则无法以重复书写代码实现。维护重复代码工作量巨大。使用循环语句实现。5.1 为什么需要循环结构scanf(%f,%f,%f
2、,%f,%f,&score1,&score2,&score3,&score4,&score5);/输入一个学生5门课的成绩aver=(score1+score2+score3+score4+score5)/5;/求该学生平均成绩printf(aver=%7.2f,aver);/输出该学生平均成绩要向计算机输入全班50个学生的成绩;(重复50次相同的输入操作)分别统计全班50个学生的平均成绩;(重复50次相同的计算操作)程序要求1个人的处理代码i=1;/设整型变量i初值为1while(i=50)/当i的值小于或等于50时执行花括号内的语句scanf(%f,%f,%f,%f,%f,&score1,
3、&score2,&score3,&score4,&score5);aver=(score1+score2+score3+score4+score5)/5;printf(aver=%7.2f,aver);i+;/每执行完一次循环使i的值加1循环处理50个人的代码用while语句实现循环循环结构举例5.25.2 用while语句实现循环控制While语句格式:语句格式:while(表达式)语句延迟符while语句说明:只要当循环条件表达式为真(即给定的条件成立),就执行循环体语句。“语句”就是被重复执行的部分,称为循环体。循环体可以是一个单语句,可以是用括起来的多条语句的复合语句。执行循环体的次数
4、是由循环条件控制的,这个循环条件就是上面一般形式中的“表达式”,它也称为循环条件表达式。当此表达式的值为“真”(非0值)时,就执行循环体语句;为“假”(0)时,就不执行循环体语句,转去执行循环语句的下一句。表达式语句YN特点:while循环的特点是先判断条件表达式,后执行循环体语句。5.2 用while语句实现循环控制举例例5.1连续求和流程图流程图i100sum=sum+ii=i+1真假sum=0i=15.2 用while语句实现循环控制举例代码#includeintmain()inti=1,sum=0;/定义变量i的初值为1,sum的初值为0while(i100,条件表达式i=100的值为
5、假,不执行循环体/循环体开始sum=sum+i;/第1次累加后,sum的值为1i+;/加完后,i的值加1,为下次累加做准备/循环体结束printf(sum=%dn,sum);/输出1+2+3+100的累加和return0;延迟符1.循环体如果包含一个以上的语句,应该用花括号括起来,作为复合语句出现。2.不要忽略给i和sum赋初值,否则它们的值是不可预测的,结果显然不正确。3.在循环体中应有使循环趋向于结束的语句。如本例中的“i+;”语句。如果无此语句,则i的值始终不改变,循环永远不结束。用dowhile语句实现循环循环结构举例5.35.3 用dowhile语句实现循环do.while语句格式:
6、语句格式:do语句while(表达式)延迟符dowhile语句说明:执行循环体后,进行条件表达式的判断,如果为真再次执行循环体,否则执行循环语句下一句。由于先执行循环体,再进行条件判断,因此此循环方式最少执行一次循环体。特点:先执行循环体,后判断条件表达式。表达式语句YN5.3 用while语句实现循环控制举例例5.2连续求和流程图流程图i100sum=sum+ii=i+1真假sum=0i=15.3 用while语句实现循环控制举例代码#includeintmain()inti=1,sum=0;dosum=sum+i;i+;while(i=100);printf(sum=%dn,sum);re
7、turn0;延迟符1.在一般情况下,用while语句和用dowhile语句处理同一问题时,若二者的循环体部分是一样的,那么结果也一样。2.但是如果while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。5.3 用while语句实现循环控制举例例5.3while和do.while比较代码/while语句实现#includeintmain()inti,sum=0;printf(pleaseenteri,i=?);scanf(%d,&i);while(i=10)sum=sum+i;i+;printf(sum=%dn,sum);return0;/dowhile语句实现#includein
8、tmain()inti,sum=0;printf(pleaseenteri,i=?);scanf(%d,&i);dosum=sum+i;i+;while(i=10);printf(sum=%dn,sum);return0;用for语句实现循环循环结构举例5.45.4 用for语句实现循环for语句格式:语句格式:for(表达式1;表达式2;表达式3)语句延迟符for语句更为灵活,不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。表达式1:设置初始条件,只执行一次。可以为零个、一个或多个变量设置初值。表达式2:是循环条件表达式,
9、用来判定是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。表达式3:作为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的。求解表达式1表达式2语句求解表达式3真假for语句的下一语句5.4 用for语句实现循环for语句格式:语句格式:for(表达式1;表达式2;表达式3)语句for语句的语句的执行过程执行过程如下如下:1.求解表达式1。2.求解表达式2,若此条件表达式的值为真(非0),则执行for语句中的循环体,然后执行第(3)步。若为假(0),则结束循环,转到第(5)步。3.求解表达式3。4.转回步骤(2)继续执行。5.注意:在执行完循环体后,循环变量的值“
10、超过”循环终值,循环结束。6.循环结束,执行for语句下面的一个语句。否继续执行循环。求解表达式1表达式2语句求解表达式3真假for语句的下一语句5.4 用for语句实现循环for语句格式:语句格式:for(表达式1;表达式2;表达式3)语句延迟符for语句语句的的注意注意事项事项:1.表达式1可以省略,即不设置初值,但其后的分号不能省。例如:for(;i=100;i+)。由于省略了表达式1,没有对循环变量赋初值,为了正常执行循环,应在for语句之前给循环变量赋初值。2.表达式2也可以省略,即不用表达式2来作为循环条件表达式,不设置和检查循环的条件。此时循环无终止地进行下去,也就是认为表达式2
11、始终为真。3.表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。4.3个表达式都可省略,即不设初值,不判断条件(认为表达式2为真值),循环变量也不增值,无终止地执行循环体语句,这是死循环,显然这是没有实用价值的。5.表达式1可以是设置循环变量初值的赋值表达式,也可是与循环变量无关的其它表达式。表达式3也可是与循环控制无关的表达式。但不论怎样写for语句,都必须使循环能正常执行。6.表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。7.表达式2一般是关系或逻辑表达式,也可以是数值或字符表达式,只要值非零,就会执行循环体。8.
12、for语句的循环体可为空语句,把本来要在循环体内处理的内容放在表达式3中,作用是一样的。可见for语句功能强,可以在表达式中完成本来应在循环体内完成的操作。9.C99允许在允许在for语句语句的表达式的表达式1中中定义变量并赋初值定义变量并赋初值。例:for(inti=1;i100;i+)sum=sum+i;5.4 用for语句实现循环举例#includeintmain()inti,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(sum=%dn,sum);return0;延迟符#includeintmain()inti,sum;for(i=1,sum=0
13、;i=100;i+)sum=sum+i;printf(sum=%dn,sum);return0;#includeintmain()inti,sum;for(i=1,sum=0;i=100;sum=sum+i,i+);printf(sum=%dn,sum);return0;for语句实现连续求和代码循环的嵌套循环结构举例5.55.5 循环的嵌套一个循环内部又包括一个完整的循环称为循环的嵌套,内部循环中还有循环,称为多层循环。延迟符01内层循环02内层循环03内层循环04内层循环05内层循环06内层循环几种循环的比较3种循环循环变量5.65.6 几种循环的比较三种循环语句各有不同。延迟符1.三种循
14、环都可以用来处理同一问题,一般情况下它们可以互相代替。2.在while循环和dowhile循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i+,或i=i+1等)。for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。3.用while和dowhile循环时,循环变量初始化的操作应在while和dowhile语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。4.while循环、dowhile循环和for
15、循环都可以用break语句跳出循环,用continue语句结束本次循环。改变循环执行的状态breakcontinue5.75.7 改变循环的执行状态02 0201 01continue在循环体执行的过程中,某些情况下需要循环体部分执行完成就跳出循环,某些情况下需要直接跳转到下一次循环,在这样的情况下,需要用到break语句和continue语句。break5.7.1 用break语句提前终止循环延迟符格式:格式:break;作用:使流程跳到循环体之外,接着执行循环体下面的语句。注意:break语句只能用于循环语句和switch语句之中,而不能单独使用。代码#include#defineSUM1
16、00000/指定符号常量SUM代表10万intmain()floatamount,aver,total;inti;for(i=1,total=0;i=SUM)break;aver=total/i;printf(num=%dnaver=%10.2fn,i,aver);return0;例5.4捐款计算在1000名学生中举行慈善募捐,当总额达到10万元时就结束,统计捐款人数以及平均每人捐款的数目。for语句指定执行循环体1000次。每次循环中,输入一个捐款数,并累加到total中。循环体内的if语句,在每一次累加捐款数amount后,立 即 检 查 累 加 和 total是 否 达 到 或 超 过
17、SUM(即100000),若超过就执行break语句,流程跳转到循环体的花括号外,提前结束循环。5.7.2 用continue语句提前结束本次循环延迟符格式:格式:continue;作用:结束本次循环,即跳过循环体中下面尚未执行的语句,转到循环体结束点之前,接着执行for语句中的“表达式3”,然后进行下一次是否执行循环的判定。代码#includeintmain()intn;for(n=100;n=200;n+)if(n%3=0)continue;printf(%d,n);printf(n);return0;例5.5循环输出要求输出100200之间的不能被3整除的数。当n能被3整除时,执行con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计和C语言案例 5 程序设计 语言 案例
限制150内