【文档说明】auk[工学]第6章-循环结构程序设计-修改.ppt,共(40)页,460.000 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-2169.html
以下为本文档部分文字说明:
C程序设计第6章循环控制第6章循环结构程序设计6.2循环控制结构——while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构6.5辅助控制语句6.6程序举
例小结C程序设计第6章循环控制第6章循环结构程序设计6.2循环控制结构——while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构6.5辅助控制语句6.6程
序举例小结C程序设计第6章循环控制§6.1goto语句及其构成循环结构概述C语言可实现循环的语句:⚫用goto和if构成循环⚫while语句⚫do~while语句⚫for语句goto语句及用goto构成循环❖goto语句一般格式:goto语句标号;….….
.标号:语句;C程序设计第6章循环控制❖功能:无条件转移语句⚫和if语句一起构成循环结构;⚫从循环体中跳到循环体外。goto语句在C语言中可以用break和continue语句跳出本层循环和结束本次循环。限制使用goto语句。C程序设计第6章循环控制例6-
1用if和goto语句构成循环。/*ch6_1.c*/#include<stdio.h>main(){inti,sum=0;i=1;loop:if(i<=100){sum+=i;i++;gotoloop;}printf("%d",sum);}sum=0+1sum=1+2=3sum
=3+3=6sum=6+4……sum=4950+100=5050循环初值循环终值循环变量增值循环条件循环体C程序设计第6章循环控制例6-2从键盘输入一组数据,以0结束输入,求数据和。/*ch6_2.c*/#inclu
de<stdio.h>main(){intnumber,sum=0;read_loop:scanf("%d",&number);if(!number)gotoprint_sum;sum+=number;gotoread_loop;print_sum:printf("Thetotals
umis%d\n",sum);}C程序设计第6章循环控制第6章循环结构程序设计6.2循环控制结构——while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构6.5辅助控制语句6.6程序举例小结C程序设计第6章循环控制❖循环结构⚫当
型循环结构⚫直到型循环结构PA假真当P为真AAP假真A直到P为假注:A可以是一个简单语句、复合语句,也可以是一个基本结构§6.2循环控制结构——while和do-whileC程序设计第6章循环控制while语句❖一般形式:while(表达式)循环体语句;❖执行流程:exp
r循环体假(0)真(非0)while❖特点:先判断表达式,后执行循环体。C程序设计第6章循环控制❖说明:⚫循环体有可能一次也不执行⚫循环体可为任意类型语句⚫下列情况,退出while循环◆条件表达式不成立◆循环体内遇break,retur
n,goto⚫无限循环:while(1)循环体;C程序设计第6章循环控制例6-1(2)用while循环求/*ch6_1.c*/#include<stdio.h>voidmain(){inti,sum=0;i=1;w
hile(i<=100){sum=sum+i;i++;}printf("%d",sum);}循环初值循环终值循环变量增值循环条件循环体1001nn=C程序设计第6章循环控制例6-1(1)用if和goto语句构成循环。/*ch6_1.c*/#in
clude<stdio.h>main(){inti,sum=0;i=1;loop:if(i<=100){sum+=i;i++;gotoloop;}printf("%d",sum);}sum=0+1sum=1+2=3sum=3+3=6sum=6+4……sum
=4950+100=5050循环初值循环终值循环变量增值循环条件循环体C程序设计第6章循环控制例6-3显示1~10的平方。/*ch6_3.c*/#include<stdio.h>main(){inti=1;while(i<=10){printf("%
d*%d=%d\n",i,i,i*i);i++;}}运行结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100C程序设计第6章循环控制do~while语句❖一般形式:do
循环体语句;while(表达式);❖执行流程:do循环体expr假(0)真(非0)while❖特点:先执行循环体,后判断表达式C程序设计第6章循环控制❖说明:⚫至少执行一次循环体⚫do~while可转化成while结构expr循环体假(0)真(非0)循环体While循环C程序设计第6章循环控制例6
-1(2)用do~while循环求/*ch6_1.c*/#include<stdio.h>voidmain(){inti,sum=0;i=1;do{sum+=i;i++;}while(i<=100);printf("%d",sum);}1001nn=/*ch6_1.c*/#i
nclude<stdio.h>voidmain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}比较运行结果?一致!C程序设计
第6章循环控制while和do-while循环的比较(例6-4.c)#include<stdio.h>voidmain(){inti,sum=0;scanf(“%d”,&i);do{sum+=i;i++;}while(i<=10);printf("%d
",sum);}#include<stdio.h>voidmain(){inti,sum=0;scanf(“%d”,&i);while(i<=10){sum=sum+i;i++;}printf("%d",sum);}比较输入1时,左右输出一致。输入11时,左输出
:11,右输出:0。C程序设计第6章循环控制while和do-while循环的比较结论二者具有相同的循环体时:§当while后面的表达式的第一次为“真”时,两种循环得到的结果相同;§否则,结果不同。C程序设计第6章循环控制第
6章循环结构程序设计6.2循环控制结构——while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构6.5辅助控制语句6.6程序举例小结C程序设计第6章循环控制❖for语句一般应用形式
:for(expr1,expr2,expr3)for(循环变量赋初值;循环条件;循环变量增值){循环体语句;}❖说明:⚫for语句中expr1,expr2,expr3类型任意,都可省略,但分号;不可省⚫无限循环:for(;;)⚫for语句可以转换成while结构§6.3循
环控制结构——for语句C程序设计第6章循环控制❖执行流程:expr2循环体假(0)真(非0)forexpr1expr3C程序设计第6章循环控制例6-1:用for循环求expr1;while(expr2){循环体语句;expr
3;}#include<stdio.h>main(){inti,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}1001nn=While语句C程序设计第6章循环控制运行结果
:abcdefghij❖读程序——for语句多种应用形式#include<stdio.h>main(){inti;for(i=0;i<10;i++)putchar(‘a’+i);}#include<stdio.h>
main(){inti=0;for(;i<10;)putchar(‘a’+(i++));}#include<stdio.h>main(){inti=0;for(;i<10;i++)putchar(‘a’+i);}#include<stdio.h>main(){inti=
0;for(;i<10;putchar(‘a’+i),i++);}C程序设计第6章循环控制main(){inti,j,k;for(i=0,j=100;i<=j;i++,j--){k=i+j;printf(
"%d+%d=%d\n",i,j,k);}}#include<stdio.h>main(){charc;for(;(c=getchar())!='\n';)printf("%c",c);}❖读程序——for语句应用实例C程序设计第6章循环控制第6章循环结构程序设计6.2循环控制结构—
—while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构6.5辅助控制语句6.6程序举例小结C程序设计第6章循环控制❖三种循环可互相嵌套,层数不限❖外层循环可包
含两个以上内循环,但不能相互交叉❖嵌套循环的执行流程(1)while(){……while(){……}…...}(2)do{……do{……}while();…...}while();(3)while(){……do{……}while();…….}(4)for(;;){……do{……
}while();……while(){……}…...}内循环外循环内循环§6.4循环嵌套C程序设计第6章循环控制第6章循环结构程序设计6.2循环控制结构——while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构6.5辅助控制语句6.6程序举例小
结C程序设计第6章循环控制§6.5辅助控制语句break语句❖功能:在循环语句和switch语句中,终止并跳出循环体或开关体❖说明:⚫break不能用于循环语句和switch语句之外的任何其它语句之中C程序设计第
6章循环控制expr……break;……假(0)真(非0)whiledo……break;…...expr假(0)真(非0)whileC程序设计第6章循环控制switchexpr语句组1break;语句组
2break;语句组nbreak;语句组break;…...const1const2constndefaultcaseexpr2……break;…...假(0)真(非0)forexpr1expr3C程序设计
第6章循环控制例6-5break举例:输出圆面积,面积大于100时停止。#definePI3.14159main(){intr;floatarea;for(r=1;r<=10;r++){area=PI*r*r;if(area>100)break;printf("r=%d
,area=%.2f\n",r,area);}}C程序设计第6章循环控制例6-6break举例:小写字母转换成大写字母,直至输入非字母字符#include<stdio.h>main(){inti,j;charc;while(1){c=getc
har();if(c>='a'&&c<='z')putchar(c-'a'+'A');elsebreak;}}C程序设计第6章循环控制continue语句❖功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体
的判断❖仅用于循环语句中expr……continue;……假(0)真(非0)while真(非0)do……continue;…...expr假(0)whileexpr2……continue;…...假(0)
真(非0)forexpr1expr3C程序设计第6章循环控制例6-7求输入的十个整数中正数的个数及其平均值./*ch6_7.c*/#include<stdio.h>main(){inti,num=0,a;floatsum=0;for(i=0;i<10;
i++){scanf("%d",&a);if(a<=0)continue;num++;sum+=a;}printf("%dplusinteger'ssum:%f\n",num,sum);printf("Meanvalue:
%f\n",sum/num);}C程序设计第6章循环控制第6章循环结构程序设计6.2循环控制结构——while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构6.
5辅助控制语句6.6程序举例小结C程序设计第6章循环控制例6-8求Fibonacci数列:1,1,2,3,5,8,…的前40个数。数列特点:第1、2两个数为1、1;从第3个数开始,每个数是其前面两个数之和。即f1=1,f2=1fori=1to20输出f1,f2f1
=f1+f2f2=f2+f1/*ch6_8.c*/#include<stdio.h>main(){longintf1,f2;inti;f1=f2=1;for(i=1;i<=20;i++){printf(“%12ld%12l
d”,f1,f2);if(i%2==0)printf(“\n”);f1=f1+f2;f2=f2+f1;}}1534233159710946750255142293524578241578171855377258417711121393832040570288
739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155运行结果:1211(1)21(2)(3)nnnFnFnFFFn−−=====+C程
序设计第6章循环控制例6-9判断m是否素数(P126)读入mk=mi=2当i≤km被i整除真假用break结束循环i=i+1i>k真假输出:m”是素数”输出:m”不是素数”/*ch6_9.c*/#include<stdio.h>#include<math.h>m
ain(){intm,i,k;scanf(“%d”,&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf(“%disaprimenumber\n“,m);elseprintf(“%disnotaprimenumber\n“,
m);}C程序设计第6章循环控制例6-10求100~200之间的全部素数/*ch6_10.c*/#include<stdio.h>#include<math.h>main(){intm,i,k,n=0;for(m=101;m<=200;m+=2){k=sqrt(m);for
(i=2;i<=k;i++)if(m%i==0)break;if(i>k){printf(“%d”,m);n++;}if(n%10==0)printf(“\n“);}printf(“\n”);}运行结果:1011031071
09113127131137139149151157163167173179181191193197199C程序设计第6章循环控制第6章循环结构程序设计6.2循环控制结构——while和do-while6.3循环控制结构——for语句6.4循环嵌套6.1goto语句及其构成循环结构
6.5辅助控制语句6.6程序举例小结C程序设计第6章循环控制小结:三种循环语句的形式和用法❖while(表达式)循环体❖do循环体while(表达式);❖for(表达式1;表达式2;表达式3)循环体辅助循环控制
语句❖break语句和continue语句循环嵌套循环程序编写