- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计语言——控制流
Control Flow C程序设计语言 第3章 控制流 三种基本结构 顺序结构、选择结构、循环结构 已经证明,任何程序均可只用这三种结构实现 B?hm, Corrado, and Jacopini Guiseppe. Flow diagrams, Turing machines and languages with only two formation rules. Communication of ACM, 9(5):366-371, May 1966. 只用这三种结构的程序,叫结构化程序 程序“必须”符合结构化规则 流程图 语句块(Block) {}括住的若干条语句构成一个语句块 语句块内可以定义变量 变量必须在语句块的开头定义 变量仅在定义它的语句块内(包括下层语句块)有效(scope.c) 同一个语句块内的变量不可同名,不同语句块可以同名(homonym.c) 各司其职、下层优先 尽量不要在下层语句块内定义变量,也尽量不要定义同名变量 语句块可以用在任何可以使用语句的地方,但没有道理要乱加语句块 if-else 选择结构的一种最常用形式 if (表达式) 语句块1;else 语句块2;语句块3 表达式值非0时,执行语句块1,然后语句块3;表达式值为0时,执行语句块2,然后语句块3 else部分可以没有。当表达式值为0时,直接执行语句3 if-else嵌套使用时,注意else和谁配套的问题 else-if if的一种扩展 if (表达式1) 语句块1;else if (表达式2) 语句块2;else if (表达式3) 语句块3;…………else 语句块4;语句块5; else部分可以没有 switch 多路选择 switch (表达式) { case 整型常数1: 语句1; case 整型常数2: 语句2; ………… default: 语句3;} default可以没有 现场编程完成计算器…… 不要忘记break switch和else-if的比较 else-if比switch的条件控制更强大一些 else-if可以依照各种逻辑运算的结果进行流程控制 switch只能进行==判断,并且只能是整数判断 switch比else-if更清晰 两者都要尽量避免用得过多、过长,尤其不要嵌套得太多 它们大大增加程序的分支,使逻辑关系显得混乱,不易维护,易出错 循环——while,for while (表达式) 语句块; for (表达式1; 表达式2; 表达式3) 语句块; while while (表达式) 语句块1;语句块2; 只要表达式的值为非0,就重复执行语句块1,直到表达式值为0时止,开始执行语句块2 for for (表达式1; 表达式2; 表达式3) 语句块; 首先执行表达式1。如果表达式2的值为非0,就重复执行语句块和表达式3,直到表达式2的值为0时止 相当于:表达式1; while (表达式2){ 语句块; 表达式3;} for的所有表达式均可省略 注意 在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容,即循环体不存在 while (i 100); i++; for (i = 0; i 100; i++); printf(%d, i); for通常有一个循环变量控制循环的次数,不要在循环体内改变这个变量 循环——do-while do 语句块1;while (表达式);语句块2; 首先执行语句,然后判断表达式的值。如果表达式为0,继续向下执行,否则,再次执行语句,再次判断表达式的值 语句块1会被执行至少一次 选择三种循环的一般思路 如果循环次数已知,用for 如果循环次数未知,用while 如果循环体至少要执行一次,用do-while 只是思路,不是定律 死循环 永远不会退出的循环为死循环 for (;;) {} while (1) {} do {} while (1) 除非确实需要死循环,否则不要使用这样的形式。它们使循环的中止条件变得不明朗 一般情况下,要极力避免死循环 绝大多数程序不需要死循环。如果出现,往往都是bug 时间过长的循环会造成“假死”现象,也要考虑解决 break和continue 对for、while、do-while循环进行内部手术 break,退出循环 continue,中断此次循环的执行,开始下一次 break和continue少用为妙 它们增加了循环执行的分支,break更增加了循环的出口 它们可以用来处理程序异常,而尽量不要用来处理正常流程 goto与标号(label) 标号举例 Error: 同变量、函数的命名规则一样,后面加上一个冒号,一般顶格书写
文档评论(0)