资源描述:
《循环结构程序设计C语言程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、While、do-while、for语句循环嵌套Break、continue、goto语句exit()函数循环结构类型的选择及转换循环结构程序设计举例本章小结学习目标理解循环结构的含义;掌握C语言三种循环结构的特点;掌握while、do-while、for、goto、break、continue语句的使用方法;掌握不同循环结构的选择及其转换方法;掌握混合控制结构程序设计的方法。学习内容5.1循环结构的程序设计1.while语句一般形式:while(表达式)循环体语句;执行流程:FTexpr循环体
2、while其中:while后面的括号()不能省。while后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑表达式。表达式的值是是循环的控制条件。语句部分称为循环体,当需要执行多条语句时,应使用复合语句。特点:先判断表达式,再执行循环体说明:循环体有可能一次也不执行循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,return,goto无限循环:while(1)循环体;【例5-1】用while语句求
3、1~100的累计和。#includevoidmain(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf("sum=%d",sum);}循环初值循环终值循环条件循环体循环变量增值运行结果:sum=5050注意:循环要赋初值,初值要放在循环体外。【例6-1p】显示1~10的平方#includevoidmain(){inti=1;while(i<=10){printf("%d*%d=%d",i,i,i*i);i+
4、+;}}运行结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100(1)如果while后的表达式的值一开始就为假,循环体将一次也不执行。(2)循环体中的语句可为任意类型的C语句。(3)遇到下列情况,退出while循环:表达式为假(为0)。循环体内遇到break、return或goto语句(break和goto语句将在随后介绍)。while语句注意事项:inta=0,b=0;while(a>0)//a>0为假,b++不可能执行
5、b++;(4)在执行while语句之前,循环控制变量必须初始化,否则执行的结果将是不可预知的。(5)要在while语句的某处(表达式或循环体内)改变循环控制变量,否则极易构成死循环。(6)允许while语句的循环体又是while语句,从而形成双重循环。while语句注意事项:例:计算10!#includevoidmain(){inti;//i应赋初始值10longs=1;while(i>=1)s*=i--;printf("10!=%ld",s);}i=1;while(i<1
6、00)//死循环,因为i的值没变化,永远小于100sum+=i;printf("sum=%d",sum);i=1;while(i<=9){j=1;while(j<=9){printf("%d*%d=%d",i,j,i*j);j++;}i++;}while(1)循环体;【例6-2】求两个正整数的最大公因子。我们采用Euclid(欧几里德)算法来求最大公因子,其算法是:(1)输入两个正整数m和n。(2)用m除以n,余数为r,如果r等于0,则n是最大公因子,算法结束,否则(3)。(3)把n赋给
7、m,把r赋给n,转(2)。#includevoidmain(){intm,n,r;printf("Pleaseinputtwopositiveinteger:");scanf("%d%d",&m,&n);while(n!=0){r=m%n;//求余数m=n;n=r;}printf("Theirgreatestcommondivisoris%d",m);}运行结果:Pleaseinputtwopositiveinteger:2456↙Theirgreatestcommondi
8、visoris8main(){inta=1,n;printf("inputn:");scanf("%d",&n);while(n--)printf("%d",a++*2);}输入:n=2n--=2a++a=1a++*2输出:2n=1a=2n=1a=2a++a=2a++*2输出:4n--=0a=32.do_while语句一般形式:do循环体语句;while(表达式);执行流程:其中:while后面的括号()不能省。while最后面的分号;不能省。while后面的表达式可以是任意类型的