C程序设计(第四版)教案第五章

  • 格式:pdf
  • 大小:520.62 KB
  • 文档页数:8




第5章 循环结构程序设计
循环结构是程序中一种很重要的结构。其特点是,在给定条件成立 时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条 件,反复执行的程序段称为循环体。C语言提供了多种循环语句,可以 组成各种不同形式的循环结构。 1) 用goto语句和if语句构成循环;(只要了解) 2) 用while语句; 3) 用do-while语句; 4) 用for语句; 1. for语句 在C语言中,for语句使用最为灵活! 语句格式: for(表达式1;表达式2;表达式3) 循环体语句; 例如: for(i=1;i<=100;i++) 表达式1: 通常用来给循环变量赋初值,一般是赋值表达式,也允许在for语 句外给循环变量赋初值,此时可以省掉该表达式。 表达式2: 通常是循环条件,一般是关系表达式或逻辑表达式。 表达式3: 通常可以用来修改循环变量的值,一般是赋值语句 注意: 这三个表达式都是任选项,都可以省掉,语句格式中的语句就 是循环体语句,可以是一条语句,也可以是一条复合语句。 For语句的执行过程: (1) 先求解表达式1; (2) 求解表达式2,如果值为真,则执行(3),否则执 行(6); (3) 执行“语句”部分; (4) 求解表达式3; (5) 返回(2); (6) 执行for语句下面的一条语句; 执行过程如下图:
{ s=s+i; if(s>5) break; printf(“s=%d\n”,s); } } 程序的输出结果是: s=1 s=3 continue语句 介绍:continue语句只能用在循环体中, 格式: continue ; 意义: 结束本次循环,即不再执行循环体中,continue语句之后的语 句,转入下一次循环条件的判断与执行,注意的是,本语句只结束本层 的本次循环,并不跳出循环; 例如:输入100以内能被9整除的数。 main() { int n; for(n=9;n<=100;n++) { if(n%9!=0) continue; printf(“%d”,n); } } 例题: 求100至200间的全部素数。 #include<math.h> main() { int m,i,k,n=0; for(m=101;m<=200;m=m+2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break;
5)输出sum的值; 6)程序结束; 2. while语句结构 语句格式是: while(表达式) 语句; 执行过程是: 1)计算表达式的值; 2)判断表达式的值,当值为真时,执行循环体语句3);否则执行 5); 3)执行循环体; 4)返回2); 5)程序结束。 执行过程如下图所示;
while 表达式 循环体

授课日期 年级、专业



课 课
题: 型:
第五章 讲授+上机
第5章 循环结构程序设计
目的要求:
1、掌握for循环结构 2、掌握while和do while循环结构 1、循环语句

点:

点:
1、循环嵌套 2、continue和break的应用
教学方法:
多媒体教学+上机
课外作业:
课后分析:
检查者签字:的偶数 main() { int i=0; while(i<=100) { if(i%2==0) printf(“%d”,i); i++;
} } while语句的说明: 1.while是C语言的关键字; 2.while后一对圆括号中的表达式,可以是C语言中任意合法的表达式,由 它来控制循环体是否执行,一般是关系表达式或逻辑表达式;只要表达 式的值是真,则继续循环 3.在语法上,要求循环体可以是一条简单的可以执行的语句,若循环体内 需要多个语句时,则应该用一对花括号把它们括起来,组成一条复合语 句; 4.应该注意循环的选择,避免死循环; 5.允许while语句的双重循环; 3.do-while 语句 语句格式: do 语句; while(表达式); 其中语句是循环体,表达式是循环条件. 说明: 1.do是c语言的关键字,必须和while联合使用; 2.do-while循环由do开始,用while 结束,在while(表达式)后面的分号 不能丢失,它表示该循环语句的结束. Do-while语句的执行过程:
if(i>=k+1) {printf(“%d”,m); n=n+1;} if(n%n==0)printf(“\n”); } printf(“\n”);}
do
循环体
表达式
while
0
1
While语句和do-while语句的区别: Do-while语句是先执行后判断,因此,do-while语句至少要执行循环 体一次;而while语句是先判断后执行,如果条件不满足的话,则一次 循环也不执行。 4.循环的嵌套 在一个循环体内又完整的包含了另一个循环,叫做循环嵌套! 例如: 编程求解“百鸡百钱”问题 公鸡5元一只,母鸡3元一只,小鸡1元3只,求一百元买一百只鸡的方 法? #include <stdio.h> main() { int x,y,z; for(x=0;x<=20;x++) for(y=0;y<=33;y++) for(z=0;z<=100;z++) if(z%3==0&&x+y+z==100 &&5*x+3*y+z/3==100) printf(“x=%d,y=%d,z=%d\n”,x,y,z); } 5. break语句和continue语句 break语句 介绍: 1, break语句只能用在switch语句和循环语句中 2, 当出现在switch语句中时,表示跳出该switch语句;当 break语句出现在循环体语句中时,表示跳出本层循环体。 例如: main() { int i,s; s=0; for(i=1;i<=10;i++)
求解表达式1
表达式2
语句 求解表达式3
For语句的下一条语句

For语句的说明 1. for语句中的表达式1可以省掉,但应在循环之前给出循环控制变 量的值。 如: int i=1; For(;i<=100;i++) 语句; 2. 如果表达式2省掉了,就不判断循环条件,构成死循环。 3. 表达式3可以省掉,但应该另有语句保证循环结束。 如: for(i=1;i<=100;) { sum=sum+i;i++;} 4. 可以同时省掉表达式1和表达式3,只保留表达式2,即只给出循 环条件。 如: int i=1; For(;i<=100;) { sum=sum+i;i++;} 5. 三个表达式都可以省掉。 如: for(;;) 构成死循环,这时应该在循环体内设法结束循环。 例:求1+2+3+…..+100=? main() { int i,sum=0; for(i=0;i<=100;i++) sum+=i; printf(“1+2+3+…..+100=%d\n”,sum); } 本程序执行过程是: 1) 给i赋初值为0; 2) 判断i是否是超过100,如果没有超过100,执行3);否则执行 5); 3) 执行sum=sum+1; 4) 返回2);