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

第5章循环结构(2)


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

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

2013-8-18

第8次课

教学目的: 1. 掌握break与continue语句的使用; 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



相关文章:
VB第5章 循环结构程序设计
技能课□ 其他□ 第五章 循环结构程序设计 1)掌握循环结构的基本概念 2)掌握各种循环语句 3)掌握多重循环 4) 掌握各种实例算法 重点 与 难点 1)各种循环语句...
第五章(课后作业)
第五章(课后作业) - 第 5 章 循环结构及其应用 学习目标: 掌握循环结构的应用场合,循环结构的设计,循环 语句的用法,设计循环结构程序。 学习内容: while 循环,...
第五章循环结构
第五章 循环结构一、选择题 1.C 语言中 while 和 do_while 循环的主要区别...允许从外部转到循环体内 D.do_while 的循环体不能是复合语句 2.以下描述中...
第5章 循环结构程序设计
第5章 循环结构程序设计 - 第5章 循环结构程序设计 5.1 while 循环结构程序设计 【学习目标】 (1) 掌握循环结构的内涵 (2) 掌握 while 循环语句的结构和...
第5章循环结构程序设计
第5章 循环结构程序设计 1. 单项选择题 (1)for(i=1;i<9;i+=1);该循环共执行了 B 次。 A.7 B.8 C.9 D.10 (2)int a=2;while(a=0) a--;...
第5章 循环结构-最值与生日缘份
第5章 循环结构-最值与生日缘份_计算机软件及应用_IT/计算机_专业资料。第5章...do_while 语句实现循环结构 2.熟练掌握最值算法,练习循环嵌套解决问题 实验一 ...
第5章 循环结构程序设计
第5 章 循环结构程序设计 5.1 循环概念 在程序中安排控制重复执行一组指令(或一个程序段) ,这种操作称为 循环操作。导致循环操作的语句结构叫循环结构。 5.2...
初中信息技术八年级下册《第五章循环结构程序设计》全...
第五章 循环结构程序设计 第一节 循序渐进 一、学习目的 1.初步掌握计数循环、条件循环两种语句的格式和功能。 2.初步掌握简单循环结构程序的设计方法。 3.理解...
程序设计基础(C)第五章循环结构习题
学号: 绩: 姓名: 成 程序设计基础(C)第五章 循环结构习题 一、选择题 1. 以下程序段的输出结果是___。 int k,j,s; for(k=2; k<6; k++,k++) ...
第5章 循环结构程序设计
第5 章 循环结构程序设计 5.1 实验目的(1)掌握用 while 语句, do…while 语句和 for 语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现各种算法。...
更多相关标签: