(教案设计)用for语句实现循环
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用f o r语句实现循环
(教案设计者:武冈职业中专陈小亮)
教学内容:《C程序设计》第五章第四节for循环
课时安排:1学时(内容讲解30分钟,练习10分钟,总结反馈5分钟)教学目的:1、熟练掌握for循环语句的基本语法
2、灵活掌握for循环语句中三个表达的各种变化
3、学会在for循环中使用break语句和continue语句
4、灵活运用for循环解决实际问题
教学重点:1、for循环语句的基本语法
2、break语句和continue语句在for循环中的运用
教学难点:1、for循环语句中三个表达的各种变化的理解
2、使用for循环结构设计程序
教学方法:多媒体讲解、演示、实践操作、实题巩固
板书设计:以多媒体电视为主,黑板只板书知识点与学生的提问
教学过程:
导课:1、提问检验while语句、do-while语句实现循环的基本语法及运行过程。(根据学生掌握情况适当复习与板书)。
2、再次分析循环结构设计的原理,退出循环的控制条件,while、do-while 实现循环的区别,引入新知识点“for语句实现循环”。
一、for语句实现循环的基本语法
(运用多媒体讲解下列内容,动画强调基本格式及执行过程)
1、for语句格式:
for (表达式1;表达式2;表达式3)
{循环体}
2、语句执行过程:
①先计算表达式1的值。
②再计算表达式2的值,若其值为真,则执行循环体一次;否则跳转第⑤步。
③然后计算表达式3的值。
④回转上面第②步。
⑤结束循环,执行for语句下面一个语句。
说明:(1)、表达式1一般为赋值表达式,用于进入循环之前给循环变量赋初值。
(2)、表达式2一般为关系表达式或逻辑表达式,用于执行循环的条件判定,它与while、do-while循环中的表达式作用完全相同。
(3)、表达式3一般为赋值表达式或自增 (i=i+1 可表示成i++)、自减(i=i-1可表示成i--)表达式,用于修改循环变量的值。
(4)、如果循环体部分是多个语句组成的,则必须用大括号括起来,使其成为一个复合语句。
二、for语句循环中三个表达式的变化
(实例讲解法、实践操作验证法讲解下列内容)
1、for (;表达式2;表达式3)
“表达式1”省略,一般用于不向循环变量赋初值的情况,但“;”不可省略。
2、for (表达式1;;表达式3)
“表达式2”省略,一般用于不判断循环条件的情况,表示条件为永真,但“;”不可省略,为了防止出现死循环的情况要在循环体内设置条件退出语句。
3、for (表达式1;表达式2;)
“表达式3”省略,一般用于不按一定规律修改循环变量的情况,但“表达式2”后的“;”不可省略,在循环体内一般也有修改循环条件的语句。
4、三个表达式缺省2个,或三个全缺省(但两个“;”不可缺少),这类情况也一样需要防止出现死循环。
5、在for语句中,表达式1和表达式3也可以使用逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。在逗号表达式内按从左至右求解,整个
表达式的值为其中最右边的表达式的值。例如:
for (i=1;i<=100; i++, sum=sum+i;) 相当于:for (i=1;i<=100;i++)
sum=sum+i;
6、在for语句中,表达式一般为关系表达式(如i<=10)或逻辑表达式(如
x>0‖y<-4),但也可以是其他表达式(如字符表达式、数值表达式)。
例5.4 用for循环结构来计算1+2+3+…+10的值。
{ int i,sum=0;
for (i=1;i<=10;i++)
sum=sum+1;
printf ("1+2+3+…+10=%d\n",sum);
程序运行结果:
1+2+3+…+10=55
显然,用for语句简单、方便、形式多样。
三、for语句与while语句运用比较
(运用对比法讲解)计算5!以下用for语句程序段:
(以下程序分别由两个学生完成,全班同学一起分析,老师再作解释。)
for (i=1;i<=5;i++)
{a=a*i;
printf ("%d%d\n",a,i);}
完全等价于下面的while语句程序段:
i=1;
while (i<=5)
{ a=a*i;
printf ("%d%d\n",a,i);
i++;
}
四、在for循环中运用break语句和continue语句
(运用实践操作+体验式学习法完成)
1、break语句
格式:break;
功能:该语句可以使程序运行时中途跳出循环体,即强制结束循环
......,接着执行循环下面的语句。
例5.5 求3、5、7、11四个数的最小公倍数。
[分析] 运用逐个数判断的方法进行,找到以后立即终止。
main ( )
{ int r;
for (r=11;r<1000;r++)
if (r%3==0&&r%5==0&&r%7==0&&r%11==0) break;
printf ("r=%d",r);
}
[说明] (1)break语句不能用于循环语句和switch语句之外的任何语句。
(2)在多重循环的情况下,break语句只能跳出一层循环,即从当前循环中跳出。
2、continue语句
格式:continue;
功能:结束本次循环
......,即跳出循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
continue语句和break语句的区别是:continue语句只是结束本次循环,而不终止整个循环的执行;而break语句则是强制终止整个循环过程。
例5.6 打印出1~10之间不能被3整除的数。
main ( )
{ int i;
for (i=1;i<=10;i++)
{if (i%3==0) continue;
printf ("%5d",i); }
}
程序运行结果为: