6循环跳出和循环嵌套(课件)-《网页设计与制作》同步教学(南开大学出版社)

2024-08-13
| 23页
| 88人阅读
| 9人下载
普通

内容正文:

第 六 章 循环跳出和循环嵌套 1 2 回顾 while循环 do-while循环 while 和 do-while 循环的区别 For循环 3 目标 理解break和continue 熟练使用嵌套循环 4 break 语句(一) break语句两种用途: 1.终止switch语句中的case语句,保证多路分支情况的正确执行 2.强迫程序退出一个循环,跳过正常的循环条件测试 5 break 语句(二) break语句通常在循环中与条件语句一起使用。若条件值为真,将跳出循环,控制流转向循环后面的语句 在多层循环中,一个break语句只向外跳一层 6 跳出 for 循环 int i; for( i=0;i<100;i++; ) { if(i==10) //当i等于10时退出整个循环 break; printf(" %4d ",i); } printf(" ",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); 8 continue语句(一) continue 语句的作用是跳过循环体中剩余的语句而执行下一次循环 9 跳出 for 循环 int i; for( i=0;i<100;i++; ) { if(i==10) //当i等于10时退出本次循环 continue; printf("%4d",i); } printf(" ",i); } Continue示例 10 break与continue的区别 while(…) { …… …… break; …… …… } 跳出整个循环 while(…) { …… …… continue; …… …… } 继续下一次循环 11 循环嵌套 在一个循环体内又包含了一个完整的循环结构时,称为循环语句的嵌套。只有在内循环完全结束后,外循环才会进行下一趟。 嵌套 循环的语法 while(i <= 10) { . . . while (i <= j) { . . . . . . } . . . } 外循环 内循环 12 循环嵌套示例(一) 在屏幕打印由星号构成的5行10列的矩形图形 13 在屏幕打印由星号构成的5行10列的矩形图形 #include <stdio.h> void main() { int i,j; for (i=0;i<5;i++) //打印5行 { for(j=0;j<10;j++) //每行打印10个星号 { printf("*"); } printf(" "); //打印完一行星号后输出一个换行符 } } 循环嵌套示 例(一) 14 循环嵌套示例(二) 打印九九乘法表。 15 #include <stdio.h> void main() { printf("\t\t\t\t九九乘法表 "); printf("\t\t\t------------------------ "); for(int i=1; i<=9; i++) //输出行 { for(int j=1; j<=9; j++) //输出每行的列数 { printf("%d*%d=%2d\t",i,j,i*j); } printf(" "); } } 16 注意 内循环控制变量,不能与外循环控制变量同名 外循环必须完全包含内循环,不能有交叉循环 for循环既可以嵌套for循环,也可以嵌套while或者 do-while循环,实际应用中三种循环可以互相嵌套。 在多层循环中, 一个break语句只向外跳一层。 17 程序举例(一) 百钱买百鸡问题。假设小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,请编程列出所有可能的购鸡方案。 设母鸡、公鸡和小鸡各为x、y、z只,根据题目要求,可以列出方程为 方程有3个未知量,故有无穷多解。,在计算机中可以使用“穷举法”(也称枚举法)来求解。即,将可能出现的各种情况一一测试,判断是否满足条件。 18 程序举例(二) #include <stdio.h> void main() { printf("\t\t购买方案 "); printf("\t------------------------ "); printf("\t母鸡\t公鸡\t小鸡 "); 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 ",x,y,z); sum ++; } } } printf (" 方法一,程序总共运行了:%d ",sum); } 程序举例(二) 在多重循环中为了提高运行速度,对程序要考虑优化问题。对于多重循环,可以提高速度的优化选项中需要考虑的因素如下: 尽量利用已给出的条件,减少循环的次数。 合理的选择内、外层的循环次数,即将循环次数多的放在内循环中。 根据三种鸡的只数为100的关系,用二重循环实现;同时每种鸡循环次数不必到100,因为还要满足总价格为100元的关系。因此,假如100元买母鸡最多能买100/3 = 33只,而如果用100元全部买公鸡,则最多可买50只。 19 20 程序举例(三) #include <stdio.h> void main() { printf("\t\t购买方案 "); printf("\t------------------------ "); printf("\t母鸡\t公鸡\t小鸡 "); 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 ",x,y,z); sum ++; } } printf (“ 方法一,程序总共运行了d ",sum); } 21 程序举例(四) 从键盘输入一串字符,以ctrl + z(^z)表示输入结束。统计其中包含的单词个数、字母个数、数字个数。规定单词之间用一个空白符分开(这里的空白符包括空格符、水平制表符和换行符)。 该题的关键是统计单词的个数,由于规定单词之间用一个空白符分开,则问题就变得很简单,只要统计空白符的个数就可以知道单词的个数。 22 #include <stdio.h> void main() { char c; int alpha=0,num=0,ch=0,word=0; while((c=getchar())!=EOF) //EOF代表文本结束,键盘上对应Ctrl+Z { if(c==' ' || c=='\t' || c==' ') //当字符是空白符时将word计数变量自增 word++; if(c>='a'&& c<='z' || c>='A' && c<='Z') //当字符是字母时将alpha计数变量自增 alpha++; else if(c>='0'&&c<='9') //当字符是数值时将num计数变量自增 num++; else //其他情况将ch计数变量自增 ch++; } printf("字母数=%d ",alpha); printf("数字数=%d ",num); printf("其他字符数=%d ",ch); printf("单词数=%d ",word); } 23 总结 break 语句用在循环中时,可以直接终止循环,将控制转向循环后面的语句 continue 语句的作用是跳过循环体中剩余的语句而执行下一次循环 嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内 x + y + z = 100 3x + 2y + 0.5z = 100 $$

资源预览图

6循环跳出和循环嵌套(课件)-《网页设计与制作》同步教学(南开大学出版社)
1
6循环跳出和循环嵌套(课件)-《网页设计与制作》同步教学(南开大学出版社)
2
6循环跳出和循环嵌套(课件)-《网页设计与制作》同步教学(南开大学出版社)
3
6循环跳出和循环嵌套(课件)-《网页设计与制作》同步教学(南开大学出版社)
4
6循环跳出和循环嵌套(课件)-《网页设计与制作》同步教学(南开大学出版社)
5
6循环跳出和循环嵌套(课件)-《网页设计与制作》同步教学(南开大学出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。