




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章循环跳出和循环嵌套12回顾while循环do-while循环while和do-while循环的区别For循环3目标理解break和continue熟练使用嵌套循环4break语句(一)break语句两种用途:1.终止switch语句中的case语句,保证多路分支情况的正确执行2.强迫程序退出一个循环,跳过正常的循环条件测试5break语句(二)break语句通常在循环中与条件语句一起使用。若条件值为真,将跳出循环,控制流转向循环后面的语句在多层循环中,一个break语句只向外跳一层6跳出
for循环inti;for(i=0;i<100;i++;){if(i==10)//当i等于10时退出整个循环
break;printf("
%4d",i);}printf("
\n",i);}break示例7跳出
while循环while(1){if(x==10)
break;}跳出
for循环for(;;){printf("这将一直进行下去");i=getchar();if(i=='X'||i=='x')
break;}break语句(三)跳出
do-while循环do{if(x==10)
break;}while(x<15);8continue语句(一)continue
语句的作用是跳过循环体中剩余的语句而执行下一次循环9跳出
for循环inti;for(i=0;i<100;i++;){if(i==10)//当i等于10时退出本次循环
continue;printf("%4d",i);}printf("\n",i);}
Continue示例10break与continue的区别while(…){
…………
break;
…………}跳出整个循环while(…){
…………continue;
…………}继续下一次循环11循环嵌套在一个循环体内又包含了一个完整的循环结构时,称为循环语句的嵌套。只有在内循环完全结束后,外循环才会进行下一趟。嵌套循环的语法while(i<=10){...while(i<=j){......}...}外循环内循环12循环嵌套示例(一)
在屏幕打印由星号构成的5行10列的矩形图形13
在屏幕打印由星号构成的5行10列的矩形图形#include<stdio.h>voidmain(){inti,j;for(i=0;i<5;i++) //打印5行
{ for(j=0;j<10;j++) //每行打印10个星号
{ printf("*"); } printf("\n");//打印完一行星号后输出一个换行符
}}循环嵌套示
例(一)14循环嵌套示例(二)
打印九九乘法表。15#include<stdio.h>voidmain(){ printf("\t\t\t\t九九乘法表\n"); printf("\t\t\t------------------------\n"); for(inti=1;i<=9;i++)//输出行
{ for(intj=1;j<=9;j++)//输出每行的列数
{ printf("%d*%d=%2d\t",i,j,i*j); } printf("\n"); }}16注意内循环控制变量,不能与外循环控制变量同名外循环必须完全包含内循环,不能有交叉循环for循环既可以嵌套for循环,也可以嵌套while或者do-while循环,实际应用中三种循环可以互相嵌套。在多层循环中,一个break语句只向外跳一层。17程序举例(一)百钱买百鸡问题。假设小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,请编程列出所有可能的购鸡方案。设母鸡、公鸡和小鸡各为x、y、z只,根据题目要求,可以列出方程为方程有3个未知量,故有无穷多解。,在计算机中可以使用“穷举法”(也称枚举法)来求解。即,将可能出现的各种情况一一测试,判断是否满足条件。18程序举例(二)#include<stdio.h>voidmain(){
printf("\t\t购买方案\n");
printf("\t------------------------\n");
printf("\t母鸡\t公鸡\t小鸡\n");
int
x,y,z,sum=0;for(x=1;x<=100;x++){for(y=1;y<=100;y++){ for(z=1;z<=100;z++){if(((x+y+z)==100)&&((3*x+2*y+0.5*z)==100))
printf("\t%d\t%d\t%d\n",x,y,z);sum++;}}}
printf("\n方法一,程序总共运行了:%d\n",sum);}
程序举例(二)在多重循环中为了提高运行速度,对程序要考虑优化问题。对于多重循环,可以提高速度的优化选项中需要考虑的因素如下:尽量利用已给出的条件,减少循环的次数。合理的选择内、外层的循环次数,即将循环次数多的放在内循环中。根据三种鸡的只数为100的关系,用二重循环实现;同时每种鸡循环次数不必到100,因为还要满足总价格为100元的关系。因此,假如100元买母鸡最多能买100/3=33只,而如果用100元全部买公鸡,则最多可买50只。1920程序举例(三)#include<stdio.h>voidmain(){
printf("\t\t购买方案\n");
printf("\t------------------------\n");
printf("\t母鸡\t公鸡\t小鸡\n");
int
x,y,z,sum=0;for(x=1;x<=33;x++){for(y=1;y<=55;y++){z=100-x-y;
if((3*x+2*y+0.5*z)==100)printf("\t%d\t%d\t%d\n",x,y,z);
sum++;}}
printf(“\n方法一,程序总共运行了d\n",sum);}
21程序举例(四)
从键盘输入一串字符,以ctrl+z(^z)表示输入结束。统计其中包含的单词个数、字母个数、数字个数。规定单词之间用一个空白符分开(这里的空白符包括空格符、水平制表符和换行符)。该题的关键是统计单词的个数,由于规定单词之间用一个空白符分开,则问题就变得很简单,只要统计空白符的个数就可以知道单词的个数。22#include<stdio.h>voidmain(){charc;intalpha=0,num=0,ch=0,word=0;while((c=getchar())!=EOF)//EOF代表文本结束,键盘上对应Ctrl+Z{if(c==''||c=='\t'||c=='\n')//当字符是空白符时将word计数变量自增
word++;if(c>='a'&&c<='z'||c>='A'&&c<='Z')//当字符是字母时将alpha计数变量自增
alpha++;elseif(c>='0'&&c<='9')//当字符是数值时将num计数变量自增
num++;else//其他情况将ch计数变量自增
ch++;}
printf("字母数=%d\n",alpha);
prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶叶代销合作协议书
- 钢管扣件保管协议书
- 运维改造合同协议书
- 阅文合同霸王协议书
- 驻场开发保密协议书
- 酒店入股经营协议书
- 修脚店合伙开店协议书
- 养鸡合伙人合同协议书
- 菜园开荒租赁协议书
- 车辆交付违约协议书
- 2024年初级会计实务考试真题
- 变电站设备危险源辨识清单及预控措施
- GB/T 45083-2024再生资源分拣中心建设和管理规范
- 艾灸疗法课件
- 银行职业介绍课件
- T-CASME 1514-2024 市域智慧共享中药房建设指南
- 《全球各大邮轮公司》课件
- 【MOOC】创新与创业管理-南京邮电大学 中国大学慕课MOOC答案
- 2024年3月天津高考英语第一次高考真题(原卷版)
- 大学美育(长春工业大学)知到智慧树章节答案
- 2024年度高端医疗服务合同for海外医疗咨询与安排
评论
0/150
提交评论