1、第第5章章 循环结构程序设计循环结构程序设计提 纲n循环语句概述nFor语句nDo-while语句nWhile语句n循环的嵌套n转移控制语句qBreak语句qContinue语句qGoto语句n注释的使用(续)循环语句5.1 循环语句概述循环语句概述1.输出100个“*”;2.输出1,2,3,1003.计算1+2+3+1000 根据已有的知识,单独实现每一题都不难。但是,费时,效率不高,C语言提供了3条循环语句来实现,以简化、并规范循环结构程序设计。循环结构程序设计的基本思想是:在给定条件成立的情况下,反复执行某个程序段。在语言中,可用以下语句实现循环:(1)while语句。(2)do-whi
2、le语句。(3)for语句。1while语句(1)一般格式 while(表达式)循环体语句组;5.2 当循环当循环while语句语句(2)执行过程)执行过程注:注:while循环是循环是for循环的一种简化形式(循环的一种简化形式(缺省缺省“变量赋初值变量赋初值”和和“循环变量增值循环变量增值”表表达式)。达式)。示例示例-1-1 用while语句求1100的累计和。5.3 直到型循环直到型循环do-while语句语句1一般格式 do 循环体语句组;while(表达式);/*本行的分号不能缺省*/当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。2执行过程执行过程do-while循环语
3、句的特点是:先执行循循环语句的特点是:先执行循环体语句组,然后再判断循环条件。环体语句组,然后再判断循环条件。示例示例-1-2 用do-while语句求1100的累计和。注意:注意:(1)do-while语句比较适用于处理:不论条件是否成立,先执行1次循环体语句组的情况。(2)除此之外,do-while语句能实现的,for语句也能实现,而且更简洁。5.4 do-while语句语句 vs while语句语句5.5 for循环语句循环语句 在3条循环语句中,for语句最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况。1for语句的一般格式 for (
4、表达式1;表达式2;表达式3)循环体语句组;2for语句的执行过程语句的执行过程示例-1-3 用for语句求1100的累计和。示例-2 求n的阶乘n!(n!=1*2*n)5.6 循环嵌套循环嵌套 (1)循环语句的循环体内,又包含另一个完整的循环结构,称为循环的嵌套。循环嵌套的概念,对所有高级语言都是一样的。(2)for语句和while语句允许嵌套,do-while语句也不例外。示例-3输出九九乘法表。1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*
5、1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=815.7 break语句与语句与continue语句语句 为了使循环控制更加灵活,语言提供了break语句和continue语句。一般格式:break;continue;break语句:(1)强行
6、结束循环,转向执行循环语句的下一条语句。(2)break语句不能用于循环语句和switch语句之外的任何其它语句中。示例-4 从键盘输入一个整数,判断此数是否为素数。素数是指除了1和它本身以外没有其它因子的大于1的整数。Continue语句:(1)对于for循环,跳过循环体其余语句,转向循环变量增量表达式的计算;对于while和do-while循环,跳过循环体其余语句,但转向循环继续条件的判定。(2)continue只能用于循环语句中。示例-5 把100200之间的不能被9整除的数输出。说明:(1)continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个
7、循环的执行;而break语句则是结束整个循环,不再判断执行循环的条件是否成立。(2)循环嵌套时,break和continue只影响包含它们的最内层循环,与外层循环无关。ngoto语句是一种无条件转移语句,其使用格式为:qgoto 语句标号;q其中语句标号应是一个有效的标识符,即只能由字母、数字和下划线组成,且第一个字符必须是字母或下划线。ngoto语句通常与if语句连用,当满足某一条件时,跳到标号处执行。n使用goto语句主要是来构成循环或用来从循环体中跳到循环体外。5.8 Goto语句语句使用goto语句实现求解1100累计和的程序如下:其中:(1)“loop:”为语句标号-格式:标号:语句
8、行;-命名:遵循标识符命名规则(2)goto语句-格式:goto 标号-功能:使系统转向标号所在的语句行执行注意注意:结构化程序设计方法,主张限制:结构化程序设计方法,主张限制使用使用goto语句。因为滥用语句。因为滥用goto语句,将语句,将会导致程序结构无规律、可读性差。会导致程序结构无规律、可读性差。5.9 良好的源程序书写习惯良好的源程序书写习惯注释(续)注释(续)作为注释,应在循环结构的前面说明其功能,在循环条件判断语句行的后面,说明循环继续条件的含义,如下所示。(1)for语句/*功能说明*/for(变量初始化;循环条件;变量增值)/*循环继续条件的含义*/(2)while语句/*
9、功能说明*/while(循环条件)/*循环继续条件的含义*/(3)do.while语句/*功能说明*/do while(循环条件);/*循环继续条件的含义*/如果循环嵌套,还应说明每层循环各控制什么。选择结构程序设计(实验)选择结构程序设计(实验)课程名称:C语言程序设计指导老师:王丹华上课日期:2014-11-03一、实验目的n掌握分支结构程序的编写qIf语句的使用qSwitch语句的使用q注释的使用(良好的源程序书写风格)二、实验内容n输入4个整数,(1)求出4个整数中的最大值;(2)四个整数按从小到大排列。n有一函数,根据输入的x值,求y值:n输入某学生的百分制成绩,经处理后输出学生成绩的等级制,(1)用if语句实现;(2)用switch语句实现。三、疑难解答 输入4个整数,(2)四个整数按从小到大排列。