文档详情

C语言第五章.ppt

发布:2017-02-11约1.07万字共40页下载文档
文本预览下载声明
第五章 循环结构 在C语言中可用以下语句来实现循环: 用goto语句和if语句构成循环 用while语句 用do — while语句 用for语句 5.1 goto 语句与标号 一般形式: goto 标号; 其中:标号用标识符表示,即由字母、数字和下划线组成,且首字符必须为字母或下划线。不能用整数来作标号 功能:当程序执行到语句时,改变程序自上而下的执行顺序,执行语句标号指定的语句,并从该语句继续往下顺序执行程序。 用途: 1. 与if语句一起构成循环结构 2. 从循环体内跳到循环体外 例1:求和 sum=1+2+······+100 main( ) {int i=1,sum=0; L1: if(i100) goto L2; sum=sum+i; i++ ; goto L1; L2: printf(1+3+······+100=%d\n,sum); } 结论:当while后的表达式为真时,while语句 和do—while语句的结果相同,否则不同。 5.4 for 循环语句 1. for循环语句的形式 for([表达式1];[表达式2];[表达式3])语句 3.说明: (1)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值)语句 如前例: (2)三个表达式均可缺省,但起分割作用的两个分号不可省略。 例如:for( ; ; ) 表达式1省略,应在for之前对循环变量赋初值 …… i=1; for( ; i=10 ; i++) sum=sum+i; …… 例4:输出100以内所有偶数的和与所有奇数的和。 main() { int I,s1=0,s2=0; for(i=1;i100;i++) if(i%2==0) s1=s1+1; else s2=s2+1; printf(?s1=%d,s2=%d\n?,s1,s2); } 例5:求s=1-1/2+1/3-1/4+······+1/n,n由键盘输入。 解题方法:让变量t的初值等于1,然后反复执行语句,则t的值就在1和-1之间交替变化。 main( ) { int i ,n; double s, t; scanf(″%d″, n); for(s=0,t=1, i=1; i=n;i++) { s=s+t/i; t= – t; } printf(″s=%f\n″,s); } 练习3:下列程序段,选项正确的是( )。 int i,k; for(i=0,k=-1;k=1;i++,k++) Printf(***); 5.5三种循环语句的比较 for语句和while语句先判断条件,后执行语句,故循环体有可能一次也不执行,而do—while语句的循环体至少执行一次。 用while和do—while循环时循环变量初始化的操作应在while 和do—while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。 一般是在循环次数已经确定的情况下,习惯用for语句;而对于循环次数不确定只给出循环结束条件的问题,习惯用while语句解决。 5.6 循 环 的 嵌 套 1.定义:在循环体内又包含一个循环结构,称为循环嵌套。三种循环(while 、do_while、for)都可以互相嵌套。例如:以下几种都是合法的嵌套形式 例6: 循环嵌套举例。 for(i=1;i=2;i++) for(j=1;j=2;j++) { printf(″%3d″,i+j); printf(″\n″); } for(i=1;i=2;i++) { for(j=1;j=2;j++) printf(″%3d″,i+j); printf(″\n″); } 例7: 求1!+2!+3!+…..+n! main() { int i,j,n; float sum,s; scanf(%d,n); sum=0; for(i=1;i=n;i++) { s=1; for(j=1;j=i;j++) s*=j; sum+=s; } printf(%f\n ,sum); } 5.7 break和continue语句 1. break 语句 语法: break ; 功能:结束包
显示全部
相似文档