任务5-2、强制中断循环_第1页
任务5-2、强制中断循环_第2页
任务5-2、强制中断循环_第3页
任务5-2、强制中断循环_第4页
任务5-2、强制中断循环_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计与项目实践清华大学出版社学生成绩的统计分析———循环程序设计项目5回顾与作业点评for语法格式do…while语法格式while…语法格式预习检查如何终止循环?continue语句和break语句格式?目标掌握continue语句掌握break语句项目任务任务5-2、强制中断循环1、如何强制结束循环?2、循环终止条件如何设定?控制转移语句对于工程控制问题,往往无法确定循环次数或循环终止条件,可根据程序运行过程中发生的某种条件中断程序的运行,即所谓的强制中断;同样的对于某些控制问题,可能希望提前结束本次循环而开始新一次的循环控制。要实现这种控制,可以采用C语言的转移控制语句break、continue和goto,以控制程序流程的走向。break语句2-1break语句可以改变程序的控制流break语句用于do-while、while、for循环中时,可使程序终止循环而执行循环后面的语句break语句通常在循环中与条件语句一起使用。若条件值为真,将跳出循环,控制流转向循环后面的语句如果已执行break语句,就不会执行循环体中位于break语句后的语句在多层循环中,一个break语句只向外跳一层一般形式为:if(表达式)break;break语句2-2跳出for循环for(;;){c=getchar();if(c=='E'||c=='e')

break;}

跳出while循环while(1){

c=getchar();if(c=='E'||c=='e')

break;}

跳出do-while循环do{

c=getchar();if(c=='E'||c=='e')

break;}while(1);案例:统计从键盘输入的若干个字符中有效字符的个数,以换行符作为输入结束。有效字符是指第一个空格符前面的字符,若输入字符中没有空格符,则有效字符为除了换行符之外的所有字符。#include<stdio.h>voidmain(){ intcount=0,ch; printf("\n请输入一行字符:"); while((ch=getchar())!='\n') { if(ch=='')

break; count++; } printf("\n共有%d个有效字符。\n",count);}break语句案例内存chcountH0_请输入一行字符:Helloworld共有5个有效字符1循环执行5次5break案例2-1【案例5-9】求300以内能被17整除的最大的3个正整数。分析:如果m被n整除,则m%n=0,所以,求300以内内能被17整除的最大的3个正整数,取x的值从300开始,如x%17=0,表示x被17整除,只找三个这样的数,用一个计数器count计数。break案例2-2voidmain(){intx;intcount=0;for(x=300;x>=17;x--){if(x%17==0){count++;if(count>3)break;

printf("x=%d\n",x);

}}}continue语句2-1continue语句只能用在循环里continue语句的作用是跳过循环体中剩余的语句而执行下一次循环对于while和do-while循环,continue语句执行之后的动作是条件判断;对于for循环,随后的动作是变量更新

一般形式为:if(表达式)continue;continue语句2-2while(…){

…………continue;

…………}while(…){

…………

break;

…………}跳出整个循环继续下一次循环案例:求整数1~100中个位不为3的所有数的累加值#include<stdio.h>voidmain(){ inti,sum=0; for(i=1;i<=100;i++) { if(i%10==3)

continue; sum+=i; } printf("sum=%d\n",sum);}contine案例内存isumnull0131循环执行到i=1378输出:sum=45701循环执行到i=1011014570continue语句案例2-1【案例5-10】求300以内能被17整除的所有正整数。分析:将从1到300的所有数x用来判断是否被17整除。continue语句案例2-2voidmain(){

intx;for(x=1;x<=200;x++){

if(x%17!=0)continue;printf(“%d”,x);}}goto语句2-1goto语句是一条无条件转移语句,goto语句是一种让程序员任意控制流程的有效工具,充分表现程序的灵活性。在结构化程序设计,goto语句会使程序流程无规律、可读性差,因此,建议尽量少用或不用该语句。当需要跳出某种嵌套较深的结构时,如果使用break语句,只能跳出break所在层。如果一次要跳出二层甚至更多层,这时使用goto语句,就是不错的选择。goto语句的格式:goto标识符;其中标识符是语句转移的目标。该标识符必须局限在当前函数的标号。标号的格式与变量名相同,并在其后跟冒号。goto语句2-2用if语句和goto语句构成循环。可以利用if和goto语句实现循环,这种方式也是早期非结构化程序设置实现循环的一种方法。其处理流程如图5-17。goto语句案例2-1【案例5-11】编程,求1~10的平方根。分析:

利用if和goto语句构成一个循环,设置变量num,其取值为1~100,并计算其平方根,当num>100退出循环。goto语句案例2-2voidmain(){intnum;printf("num\troot\n");

num=1;loop:if(num<=10)

{

printf("%d\t%5.3f\n",num,sqrt(num));

num++;

gotoloop;}}goto语句案例2-12、利用goto实现跳出循环【案例5-12】用逐个判别法求2~100之间的所有素数。

分析:将2~100的所有整数逐个判断,如果是素数,则打印输出。程序流程如图5-19所示。goto语句案例2-2#include<stdio.h>#include<math1voidmain(){inti,j,c;for(i=2;i<100;i++){for(j=2;j<i/2;j++)if(i%j==0)gotoex;printf("%4d",i);c++;if(c%5==0)printf("\n");ex:;}}任务分析与实施任务分析统计某门课程的平均成绩。对于某个班级学生某门课程平均成绩的统计,需要对每个学生该

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论