当前位置:首页 >> 其它课程 >>

第5章循环结构(2)


授课班级:测控本101/电子本101、供电专101/102、集控专101/102

第5章循环结构程序设计
5.4 break语句、continue语句和goto语句 5.5 循环的嵌套 5.6 程序举例

2013-8-18

第8次课

教学目的: 1. 掌握break与continu

e语句的使用; 2. 简单了解goto语句; 3. 熟练掌握循环的嵌套; ? 重点: 1. break和continue语句的使用特点及区别; 2. 循环嵌套的执行方法及程序的编写。 ? 难点: 1. 循环嵌套程序的编写 ? 教具: ppt课件、屏幕投影 ? 教学过程: 问题引入、内容讲解、提问、小结、作业
?

5.4 break 语句和 continue 语句
5.4.1
? ?

break 语句

格式:break;
功能:该语句可以使程序运行时中途退出一个循环体

说明:break语句是限定转向语句,它使流程跳出所 在的结构,把流程转向所在结构之后。由break语句退 出循环体,从而结束循环过程。
(1) break语句不能用于循环语句和switch语句之外的 任何其他语句。 (2)在多重循环的情况下,使用break语句时,仅仅退 出包含break语句的那层循环体,即break语句不能使 程序控制退出一层以上的循环。

例:使用break语句求1+2+3+…+100
在本程序执行中,当i>100时,强行终止for循环(从循环体中 跳出),继续执行for语句的下一条语句,即输出s的值。

main() { int i=1,s=0; for(;;) {s=s+i; i++; if(i>100) break; /*如果i>100,退出循环*/ } printf("s=%d\n",s); }

例:计算r=1到r=10的圆面积,直到面积s>100为止, 当s>100时,执行break语句,提前终止循环,即不再 继续执行其他语句。
#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); }

5.4.2 continue语句
格式: continue; o功能: 结束本次循环,即跳过循环体中下面尚未执 行的语句,继续进行下一次循环。 o说明: continue语句只能出现在循环体语句中,不能用在 其他的地方。
o

continue语句只结束本次循环,而break语句则是 结束循环,不再进行条件判断。

例5.5:求100到200中不能被3整除的数并输出。 main() { int n; for(n=100;n<=200;n++) { if(n%3= =0) continue; printf(“%d”,n); } }

5.4.3 goto语句
goto语句被称为无条件转移语句,它的一般形式为:
goto 标号; 执行goto语句使程序流程转移到相应标号所在的语句, 并从该语句继续执行。语句标号用标识符表示。
?

带标号语句的形式是:
标号:语句 即标号和语句之间用冒号隔开。

例:用goto语句来求s=1+2+3+…+100的值。 main()

{

int i=1,s=0;
loop: s=s+i;

i++;
if(i<=100) goto loop; printf("s=%d\n",s); }

?

说明:

goto语句只能使流程在函数内转移,不得转移到该 函数外。 需要从多重嵌套的结构中转移到最外层时,可以使 用goto语句。 大量使用goto语句导致程序结构不清晰,程序的可 读性变差,因此要尽量避免使用goto语句。

5.5 循环的嵌套
一个循环体内又包含另一个完整的循环结构,称为循环 的嵌套。

三种循环:while、do-while和for循环可以互相嵌套。
例:(1)while() {… while() {…} } (2) for(;;) {… while() {…} }

例5.6 编写程序输出如下图形。
算法分析:

* 1 用循环变量i(1<=i<=5)控制图形的行数。 ** for(i=1;i<=5;i++) *** 输出第i行 **** 2 每行上*的个数随着控制变量值的变化而变化 ***** i=1时,执行1次 putchar('*'); i=2时,执行2次 putchar('*'); …… i=5时,执行5次 putchar('*'); 3用循环控制变量j(1<=j<=i)来控制图形中每行的个数,则内 循环语句为 for(j=1;j<=i;j++) putchar('*');

例5.6 编写程序输出如下图形。 #include "stdio.h" main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) putchar('*'); putchar('\n'); } }

* ** *** **** *****

程序举例

[例5.8]判断变量m是否是素数。

?算法: 让m被2到
m

之间的所有整数除。

如果m被2到 m 之中的某一个数整除,m不是素数, 则提前结束循环。
若m没有被2到 m之间的任何一个数整除,那么m是 素数,循环正常结束。

[例5.8]判断变量m是否是素数。
#include "math.h" main() { int i,m,k; scanf(“%d”,&m); k=sqrt(m); for(i=2;i<=k;i++) if(m%i= =0) break; if(i>k) printf("%d is a prime number\n",m); else printf("%d is not a prime number\n",m); }

练习
1.执行下列的程序段后,正确的结果是 main() {int i=0,j,k=0,m=0; for( ;i<2 ;i++) { for(j=0;j<3;j++) k++; k-=j; } m=i+j; printf("m=%d,k=%d",m,k ); }

结果: m=5,k=0

2.执行下列的程序段后,正确的结果是
main() {int i; for(i=1;i<6;i++) { if(i%2) putchar('a'); else continue; putchar('b'); } putchar('!');}

结果: ababab!

小结
1. 2. 3.

break和continue语句的特点及使用; 循环嵌套的执行方法及程序的编写; goto语句的定义方法及执行过程。

? ?

作业: P75 三、编程题7


相关文章:
第5章循环结构实验1
第五章 循环结构实验三 猴子选大王一、实验目的 (1) 能灵活应用循环结构; (2) 培养用 C 语言解决实际问题的能力。 二、实验内容 1. 问题描述: n 只猴子围...
第5章 循环结构
第五章本章要点: 1.for 循环结构 2.while 和 do...while 循环结构 4.continue 和 break 语句 5.循环的嵌套 循环结构 重要考点提示: 1.对循环条件的理解 ...
第5章 循环结构 习题
第五章循环结构程序设计习... 暂无评价 21页 8财富值 循环结构3习题 10页 2财富值 循环结构习题1 3页 免费 第6章循环结构程序设计习题... 16页 免费喜欢...
高中数学 第五章 第5课时《循环结构》(2)教案(学生版) ...
高中数学 第五章 第5课时《循环结构(2)教案(学生版) 苏教版必修3_初一语文_语文_初中教育_教育专区。有效合作,实践第5 课时 5.2 流程图【学习导航】 学习...
第5章循环结构
第5 章 循环结构 1. 理解 break 语句与 continue 语句的区别。. # include ...2 4 6 n -1 /* 数学函 数库 */ /* 用 s 表 示多项 式的值 ,用...
第5章循环结构程序设计
第5章循环结构程序设计_IT/计算机_专业资料。第 5 章 循环控制程序设计 1/21...第 5 章 循环控制程序设计 5/21 do[例 5.2] 用 do-while 语句求 。 ...
第5章 循环结构
第5章 循环语句 5.1 while 语句和用 while 语句构成的循环结构 5.12 while 循环的执行过程 3.3.2 while 语句 while 语句执行过程: while 循环的执行过程如下...
VB第5章 循环结构程序设计
技能课□ 其他□ 第五章 循环结构程序设计 1)掌握循环结构的基本概念 2)掌握各种循环语句 3)掌握多重循环 4) 掌握各种实例算法 重点 与 难点 1)各种循环语句...
第5章 循环结构-最值与生日缘份
第5章 循环结构—最值计算与生日 缘份通过本章实验作业应达目标 1.熟悉 while...do_while 语句实现循环结构 2.熟练掌握最值算法,练习循环嵌套解决问题 实验一 ...
第5章 循环结构的程序设计(A)
第5章 循环结构的程序设计( 循环结构的程序设计(A) 一、填空题 1.当反复执行语句的次数可以 时,通常使用 for 循环。 2.当某个条件满足时,重复执行的一条或...
更多相关标签: