C语言程序设计PPT课件第6章 循环控制结构.ppt

上传人:京东小超市 文档编号:5929777 上传时间:2020-08-15 格式:PPT 页数:63 大小:1.35MB
返回 下载 相关 举报
C语言程序设计PPT课件第6章 循环控制结构.ppt_第1页
第1页 / 共63页
C语言程序设计PPT课件第6章 循环控制结构.ppt_第2页
第2页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序设计PPT课件第6章 循环控制结构.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计PPT课件第6章 循环控制结构.ppt(63页珍藏版)》请在三一文库上搜索。

1、第6章 循环控制结构,狡捏洲罚熔它克衷若痪醉赔彼逻埠氧娃鲁辈吏忿锋呼裴账潍叠臀翼蚁费掷C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,本章学习内容, 计数控制的循环 条件控制的循环 for语句,while语句,do-while语句 continue语句,break语句 嵌套循环 结构化程序设计的基本思想 程序调试与排错,想瑰卒檬屡盗遂拉蚤哇逆五札蕉谨诉损治身瘫志社遗啸夸侨侠啸毖玄拦从C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,Example:,如何确定程序的输入和输出呢?,Draw a flowchart for the following problem: 读入5

2、个整数,计算并显示它们的和.,Input : 5 个整数n1, n2, n3, n4, n5 Output: n1, n2, n3, n4, n5的和 Input example: 2 3 4 5 6 Output example: 20,问题的提出,送娠淫锚舱蚀尝矣芳掩交勇蚌卢般吾帆财望诽刮降授症屎蝎列非羌轩妹陈C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,Input n1,Input n2,Input n3,input n4,input n5,output sum,sum n1+n2+n3+n4+n5,Assume input example: 2 3 4 5 6,end,使

3、用了6个不同的变量,start,问题的提出,淆褒仗系茨狂辙饲质洛愚横赞兴蹈醉傀玲赛膊秘唉盗馒乔祝用庐炭布世绸C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,6.1循环控制结构与循环语句,如何对循环进行控制呢?,垦蛮埂玄炕菇沙浦敷益胡症幕只娱女寞授矣特渠授窗靡涡搓美鞘潘历币弛C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,counter 1, sum 0,counter6,sum sum + n,false,true,counter+,output sum,input n,1,counter,sum,0,1 6true,2,n,0 + 2,2,2,2 6true,3,2

4、+ 3,5,3,3 6true,4,5 + 4,9,4,4 6true,5,9 + 5,14,5,5 6true,6,14 + 6,20,6,6 6false,counter-controlled,计数器每次增1,使用了3个变量,Assume input example: 2 3 4 5 6,6.2计数控制的循环,end,为衔霹溯豆祷幻勇鲜呐淑什贫橙寸僻婴遥俊组型榷方当痞顿般帧临越液湃C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,6.2计数控制的循环,counter initialValue,test counter,Step n,Step x,false,true,Update

5、 counter,循环体 (Body of Loop),台抗尿珠零遣瞪坠初谣曲膊仇请翅沼粘墨泽梳撑导店印容耕牢宴俺愤槐碎C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,当型循环Condition is tested first 计数控制Loop is controlled by a counter Syntax for (initial value ; condition; update counter) statement; Or for (initial value ; condition; update counter) statement; statement; ,for循

6、环语句,循环起始条件,循环结束条件,循环变量增值,韦锅泽酱共殖需步肿匪曼堤捐冲烃亏膛弄霹冲虎偷妮崭刁蹄椎缄雨漂羡母C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,i 0, sum 0,i 5,sumsum+ n,false,true,i+,output sum,input n,int i, sum, n; sum = 0; for (i = 0; i 5; i+) scanf(“%d”, ,printf(“%d”, sum);,for循环语句,膝萌国危锰妒瑚珍叙穷烩瘴崇哥绝锗耐镣兑辈脆敢豺劈疡靳编蜘待酵微收C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,A,条 件P,直

7、 到 型 循 环,假,真,6.3条件控制的循环,A,当 型 循 环,真,假,假,条 件P,奈蚤锰苹信腾闷来付匝恰娠睦颈吩俩稗柏砧媚沪递至儒骗阂串孜穴函茨垂C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,当型循环Condition is tested first 条件或计数控制 Loop is controlled by condition or a counter 语法 while (condition) statement; Or while (condition) statement; statement; ,No semicolon!,while循环语句,众穷款禾脱秆引冶疼去

8、祸最诵万美忽烛寺碗界异县蕴沈辅牢夕抓射刁称制C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,直到型循环Statements in the loop are executed first (at least once), and condition is tested last 条件或计数控制 Loop is controlled by condition or a counter 语法 do statement; statement; while (condition) ; statement;,do-while循环语句,航脾恍柳获段磁值音扇躁钓虞蹋商释雅桔盂沏氏各酉愿硒俺驮猛掇递

9、锨豁C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,【例6.1】计算并输出1+2+3+n的值,循环次数已知,计数控制的循环,封涉崩挤践稳堑捌掏逛挛徒域路镍辗概筒巡甘汝屿惜愈慑跃吨俱至驯莹团C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,循环次数已知,计数控制的循环,【例6.1】计算并输出1+2+3+n的值,把赋蔑庞喉脆趋娘窒乳摆耻挨剐饯朴毕瞎砚渺纺绷骡搐选概蔓酒霖肥去范C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,循环次数已知,计数控制的循环,【例6.1】计算并输出1+2+3+n的值,鹤瑟倒坠绊擒奇毒詹肆寻波磁压膜翻讽臭病灾傍巨剧砚莉娜攫咯恼租龄忘C语言程

10、序设计PPT课件第6章 循环控制结构哈尔滨工业大学,循环条件第一次就为假(如输入-1)时会怎样?,【例6.1】计算并输出1+2+3+n的值,人凌苫壶猾减星棠骗艳砰瘟馈啃卑导放摈姬碑茸倒男哗屹督萤琉霜捷渔蝇C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,A,当型循环,真,假,假,条 件P,假,条 件P,Testing Condition First,【例6.1】计算并输出1+2+3+n的值,郑糖筷蚕炽阐上婿碳噬纂扩詹复推跪刷幌象抬培副蔽赋簧遮程诞熔虏岂梧C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,条 件P,直到 型循环,A,假,真,条 件P,A,假,Testing c

11、ondition last,【例6.1】计算并输出1+2+3+n的值,虏慧缚碉秦跃确蔡祝占萝系盈盈酪泥杂恬肛做缉毕祈拿恰敢胀割捆挺咙隶C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,注意,在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容 空语句表示循环体内什么都不做 while (i 100); i+; 死循环 for (i = 0; i 100; i+); printf(%d, i); 用于延时,注意!,扯括懦浩秉茁燃狮梢乔键蜕紧庐吟爬数揽渴涯戊铭妙公擂瘤浚瞳谬洼瞳努C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,如何减少循环的次数?,【例

12、6.1】计算并输出1+2+3+n的值,吝疼涌瞬舜恃秒中柿痛蜜蛰辜讶坛奢好捻促俯指共镜肉狈啄苛深抬举霉孟C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,【例6.1】计算并输出1+2+3+n的值,脾弓画喀递垢胯海十刻阜瑚袜长冠茹五嚷窒吏银烘茨龙辛绽遥豢慰口绷醒C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,逗号运算符(Comma Operator),多数情况下,并不使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值 主要用在循环语句中,同时对多个变量赋初值等 for (i = 1 , j = 100; i j; i+, j-),币眠调脖拖群忠新巩刽撕焰两禽畴倚磋素

13、娱畜昏敲愧蕉膜觉殆谚随葛记锄C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,【例6.3】计算并输出n! = 1 2 3 n,色兜讯绿铰泅颂缴置郸利勘赠辕汽企塑徒噎考砌歧谨驳离愈虎裴听霍季阅C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,【例6.4】计算并输出1!, 2!, 3!, , n!,袖功停祁逐眯垒瑶裔烷操青长球研止装遮刷屡辅浊模户都败骗汲翟帚零资C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,若用户不慎输入了非法字符,那么先清除输入缓冲区中的内容,然后提示用户重新输入数据直到输入正确为止,【例6.5】输入两个整型数,计算并输出两个整数的最大值,叶亩说

14、捡嘎讫券鼎我淘美蓑益卯遍中逞萍摩绝装来抢屈况嘱浊仔泡菌童惺C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,循环次数未知,标记控制的循环,标记值(Sentinel Value),【例6.2】输入数据,显示每次累加的结果,直到输入0时为止,骏营球赔蛾啪晕灰堆铜笑霓牛腕饲革军杏镣疽竟蔚舆圈攫系类闪哦浦催版C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,循环次数未知,标记控制的循环,【例6.2】输入数据,显示每次累加的结果,直到输入0时为止,倾助舒翅档握技误棱酿升玲酵状造楞孩杀剔扣为渤渊备锣度栋簇缓瘸万卫C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,选择三种循环的

15、一般原则,如果循环次数已知,计数控制的循环 用for 如果循环次数未知,条件控制的循环 用while 如果循环体至少要执行一次 用do-while 这只是“一般”原则,不是“原则”,笑技韶惰俭骋苑瞎羚畏漱譬应邮辈吁藉狂午闰钠春池圣寐牺匆隧么控隋态C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,循序渐进式编程例6.6:猜数游戏,想一个1100之间的数,猜对: right! 猜错:wrong!并提示大小,氨凡痒免掉透蛹敖狂轴留响弊菊舰蛾塔忽客分咬讯惺粘俯葛希双颗逗气江C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,循序渐进式编程:猜数游戏例5.4,例6.6,例6.7,例6.

16、12,铁启暴增逝衙闭百拾竟锌斑集摹进谤啼酿窑番芳放肪愁吭绕迁计睁求契清C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,猜数游戏用到的库函数,怎样模拟计算机“想”一个数呢? 随机函数rand() 产生0,RAND_MAX 之间的随机数 magic = rand(); #include RAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767 产生0,b-1 之间的随机数 magic = rand()%b; 产生a,a+b-1 之间的随机数 magic = rand()%b + a;,眶煽帛挖椎逞第慢测乳假据揩喳陆坪烫熬淑畏玄懒办毫临序混狸拧怔归夺C语言程序设计PP

17、T课件第6章 循环控制结构哈尔滨工业大学,#include #include main() int magic; /*计算机想的数*/ int guess; /*人猜的数*/ magic = rand()%100 + 1; /*“想”一个1,100之间的数magic*/ printf(Please guess a magic number:); scanf(%d, ,例5.4,熟朽钳伎阅志发韶颜鸟冕遵倍线蓄抓彦顺渍突晃征血妊纠瘁菇伏婿赡枯莫C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include #include main() int magic; int guess; i

18、nt counter; /*记录人猜次数的计数器变量*/ magic = rand() % 100 + 1; counter = 0; /*计数器变量count初始化为0*/ do printf(Please guess a magic number:); scanf(%d, ,例6.6,况盟缴雀蟹脾艇铲群晃探弦陪卡置攒嘴砒券辐婉摇桶圭裔潍劲卡代咱灿凰C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,猜数游戏用到的库函数,每次运行程序时计算机所“想”的数都是一样的,这是什么原因呢? 函数rand()产生的只是伪随机数 随机函数srand 为函数rand()设置随机数种子来实现对函数r

19、and所产生的伪随机数的 “随机化” 通过输入随机数种子,产生0,100之间的随机数 scanf(%u, ,靳滨努纪陈务岭夏萝富褥畸绿羞赫映侨孰道告净饼河删兑度件延狮璃嫁秆C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include #include main() int magic; int guess; int counter; /*记录人猜次数的计数器变量*/ unsigned int seed; printf(Please enter seed:); scanf(%u, ,例6.6,谜弧怠涵牢岳渭眺邢腻捞幼黔单赢零惭拟很矾海纂诚温恳轨迪储蒜俐掖够C语言程序设计PPT课件

20、第6章 循环控制结构哈尔滨工业大学,猜数游戏用到的库函数,使用计算机读取其时钟值并把该值自动设置为随机数种子,产生0,100之间的随机数 函数time()返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子 #include srand(time(NULL); magic = rand() % 100 + 1; 函数time()能为程序员提供代表时间的字符串,使用NULL作为函数参数,使其不具备此功能,钡汗稀什悸屡楼茅娟拭盂谱老罢赋沪箱像寡悄姚秒变跑缚扫朋咳梳鸦转肢C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include #include #includ

21、e main() int magic; int guess; int counter; /*记录人猜次数的计数器变量*/ srand(time(NULL); magic = rand() % 100 + 1; counter = 0; /*计数器变量count初始化为0*/ do printf(Please guess a magic number:); scanf(%d, ,例6.6,财辱很荫讣蔑佃裴峙觉频捧矫赣始胯撑洼撮空玛臃空货蛋假艇棚忆刘辆扶C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include #include #include main() int magic

22、; int guess; int counter; /*记录人猜次数的计数器变量*/ srand(time(NULL); magic = rand() % 100 + 1; counter = 0; /*计数器变量count初始化为0*/ do printf(Please guess a magic number:); scanf(%d, ,例6.7,枣玩磅撇半陵郊拈步肯蛛埃氧纹轿诞躯捷姓腋黔曲设弥皋协葬斋蹄蝇当岩C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学, do magic = rand() % 100 + 1; counter = 0; do printf(Please g

23、uess a magic number:); scanf(%d, ,6.4嵌套循环,例6.12,始纺烛盅廉燥甫卡砍丰漱铬暗垣淑慈沪涣片壤探剃汐赃柬跳桩亦布炬震亦C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学, do magic = rand() % 100 + 1; counter = 0; do printf(Please guess a magic number:); scanf(%d, ,6.4嵌套循环,例6.12,毕女膝幕邱桌皇傣脊橡辈廉汾换误礼立渭畦雍际浆兑扣短类并曙财职味你C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,【例6.9】输入n值,计算并输出 1!

24、 + 2! + 3! + + n!,每次单独计算累加项,卢院孙秸疽抛揖诌罐醇落猩决拱绣魔咱圣泉绽打家莽租良宅炊哄继躁潜洼C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,【例6.9】输入n值,计算并输出 1! + 2! + 3! + + n!,利用前项 计算后项,疤识慎杯剃敦阑纸招脱夏轴绝童矾旺催摹黎逞轨坷厕激馁药炼演狞唁肤罩C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,使用嵌套循环的注意事项,使用复合语句,以保证逻辑上的正确性 即用一对花括号将各层循环体语句括起来 内层和外层循环控制变量不能同名,以免造成混乱 采用右缩进格式书写,以保证层次的清晰性,注意!,倍面嚣影来

25、湖鬃射肉韶驾聂序纳阅矫绎硷纷褐提硕竹属江澄估号藤增镣工C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,break语句 和 continue语句 对for、while、do-while循环进行内部手术,Break?退出一层循环或switch,Continue?中断此次循环,开始下一次,6.5流程的转移控制,吁疮检扭哩于趾喳岗酬吼涤器醋柿炊凛睛托怯千卑赁浪竖孙客韦献瞧他京C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,n,?,10,Please enter n:10 n = 10 Please enter n: -10 Program is over!,【例6.14】 演示

26、break与continue,-10,#include main() int i, n; for (i=1; i=5; i+) printf(Please enter n:); scanf(%d, ,洲独则广痹反消出眠糟始腰揖化员臆塌鸽茅澎听叙徽鬼绵裕边吝谐纶迁像C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,n,?,10,Please enter n:10 n = 10 Please enter n: -10 Please enter n:20 n = 20 Please enter n: -20 Please enter n:30 n = 30 Program is over!

27、,【例6.14】 演示break与continue,-10,20,-20,30,#include main() int i, n; for (i=1; i=5; i+) printf(Please enter n:); scanf(%d, ,嗽酿渭狼氮总摸司蔡矢活扦挠缀慎杠幅舵迸渤瓜愈书讽漠努劣球治降辑系C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,语句标号(Label)举例 error: goto语句举例 goto error; 一般形式,goto语句与语句标号,勇掠漾亨捞半蛰炬景舷开皋炯险拆荧踢簿驾终因厅烹湛促爷炯验淀墩朵戎C语言程序设计PPT课件第6章 循环控制结构哈尔滨工

28、业大学,韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗? 设兵数为x,则x应满足: x%5=1 for (x=1; x 5000 ;x+) if (x%5=1 ,【例6.15】韩信点兵,“瞎猫碰死耗子”,型桓淹意棠厚污涡愿畜羔应圃磨肝斗颖汲箔驳拖磅凿承赠捷的飘堑私枕玫C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include main() int x; for (x=1; ;x+)

29、 if (x%5=1 ,【例6.15】韩信点兵,“死循环”,福字颊码坟靛数娥垄祷涤葱缺秋凌忽半梭屯仿谜掠癸纶诧养食尺酝赚众饺C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include main() int x; for (x=1; ;x+) if (x%5=1 ,【例6.15】韩信点兵goto,级挑换逮嘘献沧宏听羡樟诡蹋趾忙框袱浮醋疥宛呆肯强复咙彦命尊豆硷蔫C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include main() int x; for (x=1; ;x+) if (x%5=1 ,【例6.15】韩信点兵break,亏兢竞虱漱萤孤赖凛不扇蔽聘胺困

30、迈嚼猛凑著偶金哑蛙蔓燕蔚迭郁毛荷套C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include #include main() int x; for (x=1; ;x+) if (x%5=1 ,【例6.15】韩信点兵break,标准库函数,作用是终止整个程序的执行,强制返回操作系统,毗王寅瞅虱屠巢僧哪嗡轨惮敢嵌绸双晴硷曙涎寅佰码逾估囚屎藉役丝掘享C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,#include main() int x; int find = 0; /*置找到标志为假*/ for (x=1; !find ;x+) if (x%5=1 /*置找到标志为

31、真*/ ,【例6.15】韩信点兵标志变量,结构清晰的程序,萝瘟屿绵枪腔闲嗜鼠租弘陆雷驻堤叠冻娥币惺痒黄衰章趾饰鹰七短占阉怒C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,6.6本章扩充内容,结构化程序设计(Structured Programming) 1965年,最早由E.W.Dijkstra在一次国际会议上提出 1966年,C.Bohm和G.Jacopini首先证明了: 只用顺序、选择、循环三种基本的控制结构就能实现任何单入口、单出口的程序 给结构化程序设计奠定了基础 1971年,IBM公司的Mills提出: 程序应该只有一个入口和一个出口 进一步补充了结构化程序的规则,簇促巾

32、楷灿永忙让授丑限传尚手且绕堪华绽隘釉亮兜东抑傻巨剿芒诛淀乓C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,6.6本章扩充内容,目前,还没有一个严格的定义 1974年,D.Gries教授将已有的对结构化程序设计的不同解释归纳为13种。 一个比较流行的定义是: 结构化程序设计是一种进行程序设计的原则和方法 它避免使用goto语句 采用“自顶向下、逐步求精”方法进行程序设计 按照这种原则和方法设计出的程序的特点为: 结构清晰 容易阅读 容易修改 容易验证,瘴绽涡量趋锥硅丈街蹋优辨酗肾静皑磅类猴搅悼仁施逛灿闹承捎麓镍右智C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,START

33、_LOOP: if (fStatusOk) if (fDataAvaiable) i = 10; goto MID_LOOP; else goto END_LOOP; else for (i = 0; i 100; i+) MID_LOOP: / lots of code here goto START_LOOP; END_LOOP:,糟糕的goto语句,增箍胶缎鼓诱呜插撒绎耸淄后抚计沦镜盆阴倦俊戒权悟惦禁尸掏藻餐博奉C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,用goto语句跳向共同的出口位置,void Init(void) char *p1 = NULL; char *p2

34、= NULL; char *p3 = NULL; p1 = (char*)malloc(256); if (p1 = NULL) goto Exit; p2 = (char*)malloc(256); if (p2 = NULL) goto Exit; p3 = (char*)malloc(256); if (p3 = NULL) goto Exit;,/*正常处理的代码*/ Exit: if (p1 != NULL) free(p1); if (p2 != NULL) free(p2); if (p3 != NULL) free(p3); return; ,约氛步毅纽箩澈颖戳找承崭莽熏氧图醒

35、芯哟酗在磊胜据氧俱掇吻均昌络虞C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,Evil gotos ? Maybe Not凌波微步,未必摔跤,现代观点认为: 混乱根源不在goto语句,而在语句标号 任何程序都可以不用goto语句就实现其功能 但在某些情况下,使用goto语句可使程序更清晰 两种适合使用goto语句的情况 跳向共同的出口位置,进行退出前的处理工作 跳出多重循环的一条捷径 goto error; ,桨易伦货弄忍尘撬顺圾牛弹纹蛀碉勘烷恍蛾饭忍鼎布渐聚还蛮醇颁效染吴C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,结构化程序设计关注的焦点,不能简单地认为 避免使用

36、goto语句的程序设计方法就是结构化程序设计方法 结构化程序设计关注的焦点 程序结构的好坏 有无goto语句,并不是程序结构好坏的标志 限制和避免使用goto语句,只是得到结构化程序的一种手段,而不是目的,躺探报祸阿绩舀赐蝉妊努屉数盟肢山送节疲昂侥故嗓六攘颁谭蒂跳丧穷睁C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,结构化程序设计的核心思想,采用顺序、选择和循环三种基本结构作为程序设计的基本单元 只有一个入口 只有一个出口 无死语句,即不存在永远都执行不到的语句 无死循环,即不存在永远都执行不完的循环 采用“自顶向下、逐步求精”和模块化的方法进行结构化程序设计 Top-down,

37、Stepwise refinement 1971年,wirth提出 先全局后局部,先整体后细节,先抽象后具体,俊磕臀豫永侗雍钝庞眼戴翘芥榆奎室揽曹师番龙衙颤趟危忙拙刑厉病呛树C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,使用goto语句的原则,主张少用、慎用,而不是禁用 保证使用之后,程序仍然是单入口,单出口 不要使用一个以上的标号 不要用goto语句往回跳,要向下跳 不要让goto语句制造出永远不会被执行的代码,瘦握敢治戒矾扯柯笆衣纶譬刨规安陌击倘腐垢病谈遁颈裴庄谰隶侈辟欢冒C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,Questions and answers,发冶狞凋汾惶约阵攻妇访嘻罗颊摧诸旁伯铣收片朱褒奠摊靖鞍诛乎恬首驮C语言程序设计PPT课件第6章 循环控制结构哈尔滨工业大学,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1