- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.3 循环结构程序设计 回 顾 if语句,if-else语句和嵌套if语句 条件运算符,if语句的另外一种表达方式 swtich语句解决多分支问题,当分支超过3个以上,一般swtich语句更简洁 学习目标 了解循环结构的意义和基本语句 正确利用while、do-while语句和for语句进行循环程序设计 掌握while、do-while、for三种循环语句的互换和嵌套 理解break语句、continue语句并应用 循环:同一程序段重复执行若干次 实现循环的语句: goto语句与if语句 While语句 do~while语句 for语句 3.3.1 goto语句 goto语句-无条件转移语句 格式: goto 语句标号; 功能:程序将调转到该标号处并执行其后的语句; [例3.25]用goto语句和if语句构成循环,求1+2+3+ … +99+100的值。 goto语句的用途: 与if语句一起构成循环结构 从循环体中跳到循环体外。 3.3.2 while语句 问题提出:编程实现计算1~10的数的和。 进一步,计算1~100的数的和。 再进一步,如果要求计算1~10000的数的和呢? 从1~100的数相加问题的特点分析 重复做加操作 加操作的规律:下一次的加数比上一次加数大1 结束加操作的条件明确 执行流程: [例3.26]用while循环语句实现求1+2+..100 [3.27]统计输入的字符的个数。 [思考]统计输入的大写字符个数。 注意:设计循环时需要考虑如下因素: 循环条件,要避免死循环 循环变量,要能使循环须向结束 循环体,若有多条语句,要使用“{}” [例3.28] 求圆周率π的近似值。公式为: π/4=1-1/3+1/5-1/7+1/9-……直到上述级数最后一项的绝对值小于10-4为止。 3.3.3 do-while语句 一般形式: do 循环体语句; while(表达式); [例3.29]while和do-while循环比较。 do-while同 while语句的重要区别 3.3.4 for 语句 一般形式 for语句的一般应用形式 执行流程 for语句的几点说明 for语句中表达式1,表达式2 ,表达式3 类型任意,且可省略,但表达式后面的分号不可省 for语句的几点说明 for语句可以转换成while结构语句 [思考]观察以下程序运行结果并分析。 [思考]观察以下程序运行结果并分析。 3.3.5 循环的嵌套 循环嵌套: 一个循环内又包含另一个完整的循环结构,称为循环的嵌套。 循环的嵌套说明 三种循环可互相嵌套,层数不限 三种循环的比较 while和do~while中循环体是反复执行的部分,要有使循环趋于结束的语句。for中使循环趋于结束的操作在表达式3中; while , do ~while 中循环变量初始化在该语句之前,而for是在表达式1中; while, for先判断表达式,然后再执行语句,而do ~ while先执行语句,再判表达式; while , do ~ while , for 可用break 跳出循环,continue是结束本次循环,而 if - goto 中不能使用break 和 continue语句。 3.3.6 break语句和continue语句 break语句的说明: break只能终止并跳出本层的结构; break不能用于循环语句和switch语句之外的任何其它语句之中。 continue语句 功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。 仅用于循环语句中 3.3.7 应用综合举例 3.4 本章小结及常见错误列举 (1)include后面添加多余分号。例如: #include stdio.h; 诸如include、define之类以“#”开头的是C语言的预处理命令,并非语句,所以不能添加分号。 (2)在使用scanf函数时,变量的前面漏写“”。例如: int a; scanf(%d,a); /*错误*/ scanf函数是将键盘输入的内容送入变量所在地址,变量名前面加上“”符号代表取地址。 (3)scanf函数的操作对象只能为变量。例如: scanf(%d,(a+b)); /*错误*/ 因为表达式是没有存储地址的。 (4)scanf函数可以规定输入宽度,但不能规定输入精度。 scanf(%3d,a); /*正确*/ scanf(%5.2f,b); /*错误*/ (5)printf函数可以根据需要在格式控制字符串中随意添加转义字符,但scanf函数中使用转义字符通常会出错。 scanf(%d,%d\
文档评论(0)