当前位置:文档之家› 09 《C语言程序设计》教案 第三章 程序的控制结构(5)—循环结构 for

09 《C语言程序设计》教案 第三章 程序的控制结构(5)—循环结构 for


如果省略表达式 2,即不在表达式 2 的位置判断循环终止条件,循环无终止地进行,也 就是认为表达式 2 始终为“真”。则应该在其它位置(如:循环体)安排检测及退出循环的机 制。(break 语句) 如果省略表达式 3,即不在此位置进行循环变量的修改,则应该其它位置(如:循环体) 安排使循环趋向于结束的工作。 main() { … for(i=1,fact=1.0; i<=n; ) { fact=fact*i; i++; } 表达式 ,也可以是与循环变量无关的其它 … 1 可以是设置循环变量初值的表达式(常用) 表达式; } 表达式 1,表达式 3 可以是简单表达式,也可以是逗号表达式。 for(i=1,fact=1.0; ; i++) 表达式 2 一般为关系表达式或逻辑表达式,也可以是数值表达式或字符表达式,事实 上只要是表达式就可以。 建议:不要把与循环控制无关的内容放在 for 语句的三个表达式中,这是程序设计的良 好风序。 下列程序段的运行结果是[ ]。 for(i=1;i<=5;) printf(“%d”,i); i++; A)12345 B)1234 C)15 D)无限循环 若 i 为整形变量,则以下循环语句的循环次数是____________。 for(i=2;i==0;) printf(“%d”,i--); A) 无限次 B) 0 次 C) 1 次 D) 2 次
for 语句中表达式 1,表达式 2,表达式 3 都可以省略,甚至三个表达式都同时省略,但 是起分隔作用的“;”不能省略。 如果省略表达式 1, 即不在 for 语句中给循环变量赋初值, 则应该在 for 语句前给循环变 量赋初值。 main() { … for(i=1,fact=1.0; i<=n; i++) fact=fact*i; … } main() { i=1;fact=1; for(; i<=n; i++) fact=fact*i; … }
学生练习:显示 1—10 内的偶数。 3、循环中用到的其他语句(30 分钟) (1)break 语句 break 语句的一般形式为:break; 执行过程是:终止对 switch 语句或循环语句的执行(跳出这两种语句结构) ,而转移到 其后的语句处执行。 【例 5.5】求圆的面积。 • #define PI 3.1415926 • main() • { • int r; float s; • for(r=1;r<=10;r++) • { • s=PI*r*r; • if(s>100)break; • } • printf(″s=%f″,s); • } • 计算 r=1 到 r=10 的圆面积,直到 s>100 为止。 说明: 1)break 语句仅能用于开关语句 switch,循环语句 while、do-while 和 for。 2)在多重循环的情况下,使用 break 语句时,仅退出包含 break 语句所在的那层循环体。 练习:下面程序的输出结果是_______________。 main() { int i; for(i=1;i<=100;i++) if((i*i>=150)&&(i*i<=200)) break; printf(“%d\n”,i*i); } A) 144 B) 255 C) 169 D) 121 写出程序的运行结果: main() { int i,s=0; for(i=1; i<=10; i++) { s=s+2; if(s>5) break; } printf(“%d”,s); } 总结说明:break 语句只用于循环语句或 switch 语句中。在循环语句中,break 常常和 if 语句一起使用,表示当条件满足时,立即终止循环。注意 break 不是跳出 if 语句,而是循 环结构。循环语句可以嵌套使用,break 语句只能跳出(终止)其所在的循环,而不能一下
{ h=h-2; day=day+1; flag=1;} } day=(day+1)/2; printf(“%d”,day); } 【例 5.10】打印九九乘法表。 提示:用二重循环语句,外循环用 i 循环变量控制打印的行数,内循环用 j 循环变量控 制每行打印的个数。 程序代码: main() { int i,j; for( i=1;i<=9;i++) { for(j=1;j<=9;j++) printf(“%d*%d=%-4d”, i,j,i*j); printf(“\n”); } }
【例】Fibonacci 数列问题, 求数列 1,1,2,3,5,8,…前 40 个数。 提示:①用 a,b 两个变量 a=1,b=1 初始化,然后 a=a+b=2,b=b+a=3, a=a+b=5,b=b+a=8……,依 次类推,生成 40 个数据;数列后面的数值超过 int 的取值范围,所以定义 a,b 用长整型; ②因为每次打印 2 个数,循环 20 次,用语句 for(i=1;i<=20;i++)实现; ③每行打印 4 个数,用语句 if(i%2= =0)printf(“\n”); 实现。 main() {long int a=1,b=1; int i; for(i=1;i<=20;i++) { printf(“%12ld %12ld”,a,b); if(i%2= =0) printf(“\n”); a=a+b; b=b+a; } } 说明:for 是关键词,其后有 3 个表达式,各个表达式用“;”分隔。上面的格式为规范 性 for 语句格式. 实际上 3 个表达式可以是任意的表达式,通常主要用于 for 循环控制
改变循环条件的语句
在实际工作中常常会遇到有一定规律的重复性操作,这就需要用到循环语句。在 C 语 言中主要有三种循环语句:while,do- while,for。用 goto 语句和 if 语句也能构成循环。 2、for 语句(50 分钟) (1)格式 for(表达式 1;表达式 2;表达式 3) 循环体; (2)for 循环执行过程如下 1)计算表达式 1。 2)计算表达式 2,若其值为非 0(循环条件成立) ,则转(3)执行循环体;若其值为 0 (循环条件不成立) ,则转(5)结束循环。 3)执行循环体。 4)计算表达式 3,然后转(2)判断循环条件是否成立。 5)结束循环,执行 for 循环之后的语句。
《C 语言程序设计》课程教案表 授课题目 第三章 程序的控制结构(5)——循环结构 for 教学目的和要求 1.掌握:循环结构程序设计、for 语句 2.熟悉:continue、break 及 goto 语句 教学内容 1.基本内容: (1)三种循环比较(2)多重循环(3)循环中用到的其他语句 2.重点:运算符与表达式、赋值运算符与赋值表达式 讲课进程和时间分配 1、引子(15 分钟) • 分析植树任务,认识循环结构中的术语: • 循环条件 • 循环控制变量 • 循环体 • 改变循环条件的语句 植树任务:学校组织植树,要求每个班 100 棵. • (1)当少于 100 棵 循环条件(暗含循环控制变量) • 刨树坑. 循环体 • 种树 • • • 浇水 植树棵树加一 (2)返回(1) 课时安排 授课时间 2
子跳出多层循环。要实现跳出多层循环可以设置一个标志变量,控制逐层跳出。 2)continue 语句(翻译为“继续”(循环 continue 语句的一般形式是:continue; 功能:结束本次循环。即跳过本层循环体中余下尚未执行的语句,接着再一次进行循环 条件的判定。 【例 5.6】求 100--150 之间和 400--450 之间能被 9 整除的数。 提示: 一个数与 9 取余等于 0, 则说明该数能被 9 整除。 我们用一个循环语句初值=100, 终值用 450 ,步长=1 进行循环,151 到 399 之间的数据用 continue;语句跳过不进行判断。 main() { int n; for(n=100;n<=450;n++) { if(n>150&&n<400) continue; if(n%9==0) printf(“%6d”,n); } } 运行:108 117 126 135 144 405 414 423 432 441 450 注意:执行 continue 语句并没有使整个循环终止。注意与 break 语句进行比较。 在 while 和 do-while 循环中,continue 语句使流程直接跳到循环控制条件的测试部分,然后 决定循环是否继续执行。在 for 循环中,遇到 continue 后,跳过循环体中余下的语句,而去 对 for 语句中的表达式 3 求值,然后进行表达式 2 的条件测试,最后决定 for 循环是否执行。 练习:以下程序的运行结果是[ ]。 • main() • { int i,j,x=0; • for(i=0;i<2;i++) • { x++; • for(j=0;j<=3;j++) • { if(j%2) continue; x++; } • x++; • } • printf(“%d\n”,x); • }A、4 B、8 C、6 D、12 总结 break,continue 主要区别:continue 语句只终止本次循环,而不是终止整个循环结 构的执行;break 语句是终止循环,不再进行条件判断。 3)goto 语句 格式: goto 〈语句标号〉; 功能:goto 语句为无条件转向语句,程序执行到 goto 语句时,无条件地转到〈语句标号〉 所指定的语句并执行。 说明:①〈语句标号〉必须用标识符表示,不能用整数作为标号。 ②goto 语句与 if 语句一起使用,在满足某一条件时,程序跳到标号处执行。 4、程序设计举例 编写循环程序的要点:
相关主题