收藏 分享(赏)

《移动通信软件编程基础—C语言》第6章_循环结构II.ppt

上传人:dreamzhangning 文档编号:3361192 上传时间:2018-10-18 格式:PPT 页数:71 大小:2.51MB
下载 相关 举报
《移动通信软件编程基础—C语言》第6章_循环结构II.ppt_第1页
第1页 / 共71页
《移动通信软件编程基础—C语言》第6章_循环结构II.ppt_第2页
第2页 / 共71页
《移动通信软件编程基础—C语言》第6章_循环结构II.ppt_第3页
第3页 / 共71页
《移动通信软件编程基础—C语言》第6章_循环结构II.ppt_第4页
第4页 / 共71页
《移动通信软件编程基础—C语言》第6章_循环结构II.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

1、移动通信软件编程基础 C语言,知识回顾,6,循环结构,第,章,本章目标,掌握并熟练使用for循环,理解和掌握break和continue语句的用法,熟练使用while、do-while和for循环的嵌套,for循环的各种变形,for(表达式1 ; 表达式2 ; 表达式3) 语句; ,分号不能省略,for循环中的三个表达式可以缺省,可以省略一个, 省略两个,甚至三个全省略,但不管怎么省略, 两个分号不能省略,而且这三个表达式的功能一定 要在或前或后的其他地方以其他的形式表现出来。,省略表达式1,省略表达式1,相当于省去了为循环变量赋初值, 此时应在for语句之前给循环变量赋初值。,省略表达式1示

2、例,#include void main() int iSum = 0, n = 1;for( ; n=50; n += 2)iSum = iSum + n;printf(“50以内的奇数和iSum = %d n“,iSum); ,过程演示,for(n = 1; n=50; n += 2),省略表达式2,省略表达式2,即不判断循环条件,默认表达式2 始终为真,这时应在循环体内设置结束循环的条件, 以免造成循环体死循环。,省略表达式2示例,#include void main() int iSum = 0, n;for(n = 1; ; n+)if(n = 10)iSum = iSum + n;

3、else break;printf(“iSum = %d n“,iSum); ,过程演示,for(n = 1; n=10; n+),for循环各种变型省略表达式3,省略表达式3,即省去修改循环变量的值,但此时 应在循环体内设法结束循环。,省略表达式3示例,#include void main() int iSum = 0, n;for(n = 1; n = 100; )iSum = iSum + n;n += 2;printf(“100以内的奇数和iSum = %d n“,iSum); ,过程演示,for(n = 1; n=100; n+=2),三个表达式全省略,break语句,break语句

4、的作用和一般形式为:,/*从循环体内跳出循环体,提前结束循环, 接着执行循环下面的语句*/ break;,break语句,while () break; ,do break; while (),for( ; ;) break; ,break语句示例,11,11 = 100 ?,11 %11 != 0 ?,#include void main() int iNum;for(iNum = 11; iNum = 100; iNum+) if (iNum % 11 != 0)break;printf(“%d n“,iNum); ,11,break语句示例,12,12 = 100 ?,11 %11 !=

5、 0 ?,11,#include void main() int iNum;for(iNum = 11; iNum = 100; iNum+) if (iNum % 11 != 0)break;printf(“%d n“,iNum); ,continue语句,continue语句的作用和一般形式为:,/*跳过循环体中剩余的语句而执行下一次循环 */continue;,continue语句,while () continue; ,do continue; while ();,for( ; ;) continue; ,continue语句示例,11,11 = 100 ?,11 %11 != 0 ?

6、,11,#include void main() int iNum;for(iNum = 11; iNum = 100; iNum+) if (iNum % 11 != 0)continue;printf(“%d n“,iNum); ,continue语句示例,12,12 = 100 ?,12 %11 != 0 ?,11,#include void main() int iNum;for(iNum = 11; iNum = 100; iNum+) if (iNum % 11 != 0)continue;printf(“%d n“,iNum); ,continue语句示例,13,13 = 100

7、 ?,13 %11 != 0 ?,11,#include void main() int iNum;for(iNum = 11; iNum = 100; iNum+) if (iNum % 11 != 0)continue;printf(“%d n“,iNum); ,continue语句示例,99,99 = 100 ?,99 %11 != 0 ?,11 22 33 44 55 66 77 88,99,#include void main() int iNum;for(iNum = 11; iNum = 100; iNum+) if (iNum % 11 != 0)continue;printf

8、(“%d n“,iNum); ,continue语句示例,100,100 = 100 ?,100%11 != 0 ?,11 22 33 44 55 66 77 88,99,#include void main() int iNum;for(iNum = 11; iNum = 100; iNum+) if (iNum % 11 != 0)continue;printf(“%d n“,iNum); ,continue语句示例,101,101 = 100 ?,11 22 33 44 55 66 77 88,99,#include void main() int iNum;for(iNum = 11;

9、 iNum = 100; iNum+) if (iNum % 11 != 0)continue;printf(“%d n“,iNum); ,break和continue区别,continue语句是跳过循环体下面未执行的语句,继续进行下一次循环 break语句是提前结束循环,不再进行条件判断 continue语句只能用于循环语句 break语句只能用于循环语句和switch语句,对比do-while循环和while循环,while循环嵌套,while( ) . . .while ( ). . . . . . . ,内循环,外循环,题目:,while嵌套循环输出九九乘法表,while循环嵌套示例,

10、题目:,while嵌套循环输出九九乘法表1*1=1 1*2=2 1*3=3 1*9=92*1=2 2*2=4 2*3=6 2*9=183*1=3 3*2=6 3*3=9 3*9=279*1=9 9*2=18 9*3=279*9=81,while循环嵌套示例,while循环嵌套示例,#include void main() int n, m;n = 1;while(n = 9)m = 1;while(m = 9)printf(“%-4d“,m*n);m+;printf(“n“);n+; ,n = 1,m = 1,1,m = 2,1,1,2,while循环嵌套示例,#include void ma

11、in() int n, m;n = 1;while(n = 9)m = 1;while(m = 9)printf(“%-4d“,m*n);m+;printf(“n“);n+; ,n = 1,1 2,m = 2,m = 3,3,while循环嵌套示例,#include void main() int n, m;n = 1;while(n = 9)m = 1;while(m = 9)printf(“%-4d“,m*n);m+;printf(“n“);n+; ,n = 1,1 2 3 4 5 6 7 8 9,m = 9,m=10,10,while循环嵌套示例,#include void main()

12、 int n, m;n = 1;while(n = 9)m = 1;while(m = 9)printf(“%-4d“,m*n);m+;printf(“n“);n+; ,n = 1,1 2 3 4 5 6 7 8 9,m = 10,while循环嵌套示例,#include void main() int n, m;n = 1;while(n = 9)m = 1;while(m = 9)printf(“%-4d“,m*n);m+;printf(“n“);n+; ,n = 1,1 2 3 4 5 6 7 8 9,n = 2,1,2,2,m = 1,while循环嵌套示例,#include void

13、 main() int n, m;n = 1;while(n = 9)m = 1;while(m = 9)printf(“%-4d“,m*n);m+;printf(“n“);n+; ,n = 10,2,for循环嵌套,for( ) . . .for ( ). . . . . . . ,内循环,外循环,题目:,for嵌套循环输出九九乘法表1*1=1 1*2=2 1*3=3 1*9=92*1=2 2*2=4 2*3=6 2*9=183*1=3 3*2=6 3*3=9 3*9=279*1=9 9*2=18 9*3=279*9=81,while循环嵌套示例,for循环嵌套示例,编写程序,输出如图所示的

14、“九九乘法表”。1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 9*1=9 9*2=18 9*3=27 9*4=36 9*9=81,for循环示例,#include void main() int i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,i = 9?,条件表达式成立, 进入内循环,1,for循环示例 外循环1,内循环1,#include void main() int i, j

15、;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,j=1 i=1 j = i?,条件表达式成立, 输出i,j,i*j,1,1*1=1,1,1,#include void main() int i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,j=2 i=1 j = i?,条件表达式不成立, 退出内循环,输出n换行,1,2,1,for循环示

16、例 外循环1,内循环2,#include void main() int i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,i=2 i = 9?,条件表达式成立, 进入内循环,1,2,2,for循环示例 外循环2,#include void main() int i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,j=1 i=2 j

17、 = i?,条件表达式成立, 输出i,j,i*j,1,1*1=1,1,2,2*1=2,for循环示例 外循环2,内循环1,#include void main() int i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,j=2 i=2 j = i?,条件表达式成立, 输出i,j,i*j,1,1*1=1,2,2,2*1=2,2*2=4,for循环示例 外循环2,内循环2,#include void main() int i, j;for(i = 1; i = 9

18、; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,j=3 i=2 j = i?,条件表达式不成立, 退出内循环,输出n换行,1,3,2,for循环示例 外循环2,内循环3,#include void main() int i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,j=9 i=9 j = i?,条件表达式成立, 输出i,j,i*j,1,1*1=1,9,9,2*1=2

19、,2*2=4,3*1=3,3*2=6,9*9=81,3*3=9,4*1=3,4*2=8,4*3=12,4*4=16,9*1=9,9*2=18,9*8=72,for循环示例 外循环9,内循环9,#include void main() int i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,j=10 i=9 j = i?,条件表达式不成立, 退出内循环,输出n换行,1,10,9,for循环示例 外循环9,内循环10,#include void main() in

20、t i, j;for(i = 1; i = 9; i+) for(j = 1; j = i; j+)printf(“%d*%d=%-2d “,i,j,j*i);printf(“n“); ,i=10 i = 9?,条件表达式不成 立,退出外循环, 执行外循环以外 的语句,1,10,10,for循环示例 外循环10,do-while循环嵌套,do . . .do. . . . . while ( ). . . while( ),内循环,外循环,题目:,用“*“打印直角三角形图案* * * * * * * * * * *,do-while循环嵌套示例,#include void main() int

21、 i = 1, j;doj = 1;doprintf(“*“);j+;while(j = i);printf(“n“);i+;while(i = 5); ,过程演示,while和do-while循环嵌套,While( ) . . .do. . . . . while ( ). . . ,内循环,外循环,while和do-while循环嵌套,do . . .while ( ). . . . . . . while( ),内循环,外循环,while循环和for循环嵌套1,for( ) . . .while ( ). . . . . . . ,内循环,外循环,while循环和for循环嵌套2,whi

22、le( ) . . .for ( ). . . . . . . ,内循环,外循环,题目:用户任意输入一个整数,判断此数是否为素数?,while循环示例,while循环示例,#include void main() int num, i;printf(“Please input a number:“);scanf(“%d“, ,for(i = 2; num % i != 0; i+);,循环嵌套:break和continue语句,输出300400间的全部素数。,题目:,int i, j, k;k = 0;printf(“300400之间的素数为:n“);for(i = 300; i = 400;

23、 i+)for(j= 2; j i; j+)break;if(i = j)printf(“%4d“,i);k+;if(k % 5 = 0)printf(“n“);printf(“n“); ,过程演示,while循环和for循环嵌套示例,改进求素数的算法,#include #include void main() int i, j, k = 0, m;for(i = 301; i m)printf(“%4d“,i);k+;if(k % 5 = 0)printf(“n“);printf(“n“); ,do-while循环和for循环嵌套1,for( ) . . .do. . . . . while

24、 ( ). . . ,内循环,外循环,do-while循环和for循环嵌套2,do . . .for ( ). . . . . . . while( ),内循环,外循环,* * * * *,打印如图所示的星型图案:,题目:, int i, j, k; /定义变量i = 1;do /外循环,控制次数for(j = 1; j = 5 - i; j+) /内循环输出空格printf(“ “);for(k = 1; k = i * 2 - 1; k+) /内循环输出“*” printf(“*“);printf(“n“);i+;while(i = 5); ,过程演示,while循环和for循环嵌套示例,

25、题目(课后例题):,鸡兔同笼,共50只,腿共160条,求兔子和鸡各多少只?,For循环例程,#include void main() int i, j;for(i = 1; i 50; i+)j = 50 - i;if(2 * i + 4 * j = 160)printf(“鸡%d只,兔%d只!n“, i, j); ,For循环例程,题目:,公鸡5元一只,母鸡3元一只,小鸡1元三只。问100元钱买一百只鸡,可以买公鸡母鸡小鸡各多少只?(要求公鸡,母鸡,小鸡都要有。),while和do-while循环嵌套示例,#include void main() int i = 1, j, k;while(

26、i = 20)j = 1;dok = 100 - i - j;if(i * 15 + j * 9 + k = 300)printf(“i=%d,j=%d,k=%d“,i,j,k);j+;while(j = 33);printf(“n“);i+; ,用goto语句和if语句构成循环,goto语句为无条件转向语句,形式为:goto 语句标号; 例如:goto loop;(语句标号和标识符命名规则相同) 例:用if语句和goto语句构成循环,求1-100的累加和。#include void main() int i = 1, sum = 0;loop:if(i = 100)sum += i;i+;goto loop;printf(“sum = %d“, sum); ,本章小结,掌握典型例题及方法(1)累加、连乘、 判断素数等(2) 递推方法,总结,习题,题目: 打印下列星型图案,求 1! + 2! + 3! + 4! + 5! 求1 3 + 5 7 + .- 99 + 101,习题,作业,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报