第5章循环结构(2)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习
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.执行下列的程序段后,正确的结果是
例:使用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); }

作业: P75 三、编程题7
* 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('*');
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语句的定义方法及执行过程。
•算法: 让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); }
例:计算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); }
授课班级:测控本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.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是否是素数。
例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 编写程序输出如下图形。
算法分析:
5.4.2 continue语句
格式: continue; o功能: 结束本次循环,即跳过循环体中下面尚未执 行的语句,继续进行下一次循环。 o说明: continue语句只能出现在循环体语句中,不能用在 其他的地方。
o
continue语句只结束本次循环,而break语句则是 结束循环,不再进行条件判断。

5.4 break 语句和 continue 语句
5.4.1

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