资源描述:
《C语言第六讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言电子教案(六)第六讲第六章循环控制主要内容:§6.3while语句§6.4do-while语句§6.5for语句第六章循环控制在许多问题中,我们都需要使用循环结构,使得某一段程序能循环执行。例如要想计算sin0°~sin90°的函数值,间隔为1°;又如在对若干个数进行排序时,如果只用选择结构,势必会使问题非常复杂,程序非常繁琐。但如果使用了循环结构,你会发现,即使对大量的数据进行排序,程序的长度也基本保持不变。C语言的循环结构共有下列四种:goto语句(不符合结构化程序设计原则,故不常用)w
2、hile语句do-while语句for语句§6.3while语句及其循环结构while语句和格式及执行过程:格式:while(表达式)语句执行过程:先计算表达式之值,若为非0(即条件成立),执行后面的语句(称之为循环体)之后,再计算表达式之值进行判断,如此多次重复执行循环体;若表达式之值为0(即条件不成立),跳出循环体语句,继续向下执行。while语句的流程图表达式语句(循环体)Y(非0)N(0)返回do-while例1求1—100之间所有整数的和i<=100sum+=i;/*累加*/i+=1;/
3、*计数器加1*/Y(非0)N(0)i=1;sum=0;printf("i=%d,sum=%d",i,sum);求1—100之间整数和的程序main(){inti=1,sum=0;while(i<=100){sum+=i;i+=1;}printf("i=%d,sum=%d",i,sum);}这是一个while语句想一想,语句sum+=i;和语句i+=1;能否改变位置?为什么?想一想,如果在while语句之前对变量sum赋初值为1,是否可以?程序的哪些地方应作相应的改动?运行程序求1—100之
4、间整数和的程序运行过程main(){inti=1,sum=0;while(i<=100){sum+=i;i+=1;}printf("i=%d,sum=%d",i,sum);}这是一个while语句程序执行的过程和结果如下:i=101,sum=5050注意:循环结束后,变量i的值一定大于100。§6.4do-while语句及其循环结构do—while语句和格式及执行过程:格式:do语句while(表达式);执行过程:先执行语句(称之为循环体),然后计算表达式之值,若为非0(即条件成立),再执行语
5、句(循环体)后计算表达式之值,如此多次重复执行循环体并判断条件;若表达式之值为0(即条件不成立),结束循环,继续向下执行。do—while语句的流程图表达式语句(循环体)Y(非0)N(0)注意:while循环语句与do-while循环语句的区别。While流程图这是一个do-while语句用do-while语句求100以内正整数的和main(){inti=1,sum=0;do{sum+=i;i+=1;}while(i<=100);printf("i=%d,sum=%d",i,sum);}i=1
6、01,sum=5050运行程序从键盘上输入10个整数,求总和及平均值main(){intx,i=1,sum=0;floataver;while(i<=10){scanf("%d",&x);sum+=x;i++;}aver=sum/10.0;printf("sum=%d,aver=%.2f",sum,aver);}运行程序从键盘上输入若干个整数,求总和及平均值,输入-1结束main(){intx,sum=0;floati=1,aver;while(){sum+=x;i++;scanf("%d",
7、&x);}aver=sum/i;printf("sum=%d,aver=%.2f",sum,aver);}运行程序scanf("%d",&x);x!=-1求若干个整数的总和,要求总和不大于1000main(){intx,sum=0;while(sum<=1000){scanf("%d",&x);sum+=x;}printf(“sum=%d”,sum);}运行程序-x§6.5for语句格式:for(表达式1;表达式2;表达式3)语句执行:(1)先求解表达式1的值。(2)再求解表达式2的值,若
8、值为非0(条件成立),则执行语句(循环体)后执行下面的(3);若表达式2的值为0(条件不成立),则转向(5)。(3)求解表达式3的值。(4)转回执行(2)。(5)执行for语句后面的语句。for语句执行流程图表达式2语句(循环体)Y(非0)N(0)表达式1表达式3求1~100之间的整数之和(for语句)main(){inti,sum;for(i=1,sum=0;i<=100;i++)sum+=i;printf("i=%d,sum=%d",i,sum);}i=101,sum=50