C语言程序设计PPT课件第6章循环控制结构.ppt
《C语言程序设计PPT课件第6章循环控制结构.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计PPT课件第6章循环控制结构.ppt(63页珍藏版)》请在三一办公上搜索。
1、第6章 循环控制结构,本章学习内容,计数控制的循环 条件控制的循环 for语句,while语句,do-while语句 continue语句,break语句 嵌套循环 结构化程序设计的基本思想 程序调试与排错,Example:,如何确定程序的输入和输出呢?,Draw a flowchart for the following problem:读入5个整数,计算并显示它们的和.,Input:5 个整数n1,n2,n3,n4,n5 Output:n1,n2,n3,n4,n5的和Input example:2 3 4 5 6Output example:20,问题的提出,Input n1,Input
2、n2,Input n3,input n4,input n5,output sum,sum n1+n2+n3+n4+n5,Assume input example:2 3 4 5 6,end,使用了6个不同的变量,start,问题的提出,6.1循环控制结构与循环语句,如何对循环进行控制呢?,counter 1,sum 0,counter6,sum sum+n,false,true,counter+,output sum,input n,1,counter,sum,0,1 6true,2,n,0+2,2,2,2 6true,3,2+3,5,3,3 6true,4,5+4,9,4,4 6true,5
3、,9+5,14,5,5 6true,6,14+6,20,6,6 6false,counter-controlled,计数器每次增1,使用了3个变量,Assume input example:2 3 4 5 6,6.2计数控制的循环,end,6.2计数控制的循环,counter initialValue,test counter,Step n,Step x,false,true,Update counter,循环体(Body of Loop),当型循环Condition is tested first 计数控制Loop is controlled by a counterSyntaxfor(in
4、itial value;condition;update counter)statement;Orfor(initial value;condition;update counter)statement;statement;,for循环语句,循环起始条件,循环结束条件,循环变量增值,i 0,sum 0,i 5,sumsum+n,false,true,i+,output sum,input n,int i,sum,n;sum=0;for(i=0;i 5;i+)scanf(“%d”,printf(“%d”,sum);,for循环语句,A,条 件P,直到型循环,假,真,6.3条件控制的循环,A,当型
5、循环,真,假,假,条 件P,当型循环Condition is tested first 条件或计数控制 Loop is controlled by condition or a counter 语法while(condition)statement;Orwhile(condition)statement;statement;,No semicolon!,while循环语句,直到型循环Statements in the loop are executed first(at least once),and condition is tested last条件或计数控制 Loop is contro
6、lled by condition or a counter 语法do statement;statement;while(condition);statement;,do-while循环语句,【例6.1】计算并输出1+2+3+n的值,循环次数已知,计数控制的循环,循环次数已知,计数控制的循环,【例6.1】计算并输出1+2+3+n的值,循环次数已知,计数控制的循环,【例6.1】计算并输出1+2+3+n的值,循环条件第一次就为假(如输入-1)时会怎样?,【例6.1】计算并输出1+2+3+n的值,A,当型循环,真,假,假,条 件P,假,条 件P,Testing Condition First,【例
7、6.1】计算并输出1+2+3+n的值,条 件P,直到型循环,A,假,真,条 件P,A,假,Testing condition last,【例6.1】计算并输出1+2+3+n的值,注意,在for和while语句之后一般没有分号有分号表示循环体就是分号之前的内容空语句表示循环体内什么都不做 while(i 100);i+;死循环 for(i=0;i 100;i+);printf(%d,i);用于延时,注意!,如何减少循环的次数?,【例6.1】计算并输出1+2+3+n的值,【例6.1】计算并输出1+2+3+n的值,逗号运算符(Comma Operator),多数情况下,并不使用整个逗号表达式的值,更
8、常见的情况是要分别得到各表达式的值主要用在循环语句中,同时对多个变量赋初值等 for(i=1,j=100;i j;i+,j-),【例6.3】计算并输出n!=1 2 3 n,【例6.4】计算并输出1!,2!,3!,n!,若用户不慎输入了非法字符,那么先清除输入缓冲区中的内容,然后提示用户重新输入数据直到输入正确为止,【例6.5】输入两个整型数,计算并输出两个整数的最大值,循环次数未知,标记控制的循环,标记值(Sentinel Value),【例6.2】输入数据,显示每次累加的结果,直到输入0时为止,循环次数未知,标记控制的循环,【例6.2】输入数据,显示每次累加的结果,直到输入0时为止,选择三种
9、循环的一般原则,如果循环次数已知,计数控制的循环用for如果循环次数未知,条件控制的循环用while如果循环体至少要执行一次用do-while这只是“一般”原则,不是“原则”,循序渐进式编程例6.6:猜数游戏,想一个1100之间的数,猜对:right!猜错:wrong!并提示大小,循序渐进式编程:猜数游戏例5.4,例6.6,例6.7,例6.12,猜数游戏用到的库函数,怎样模拟计算机“想”一个数呢?随机函数rand()产生0,RAND_MAX 之间的随机数magic=rand();#include RAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767 产生0,b-1 之间
10、的随机数magic=rand()%b;产生a,a+b-1 之间的随机数magic=rand()%b+a;,#include#include main()int magic;/*计算机想的数*/int guess;/*人猜的数*/magic=rand()%100+1;/*“想”一个1,100之间的数magic*/printf(Please guess a magic number:);scanf(%d,例5.4,#include#include main()int magic;int guess;int counter;/*记录人猜次数的计数器变量*/magic=rand()%100+1;cou
11、nter=0;/*计数器变量count初始化为0*/doprintf(Please guess a magic number:);scanf(%d,例6.6,猜数游戏用到的库函数,每次运行程序时计算机所“想”的数都是一样的,这是什么原因呢?函数rand()产生的只是伪随机数随机函数srand为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的“随机化”通过输入随机数种子,产生0,100之间的随机数scanf(%u,#include#include main()int magic;int guess;int counter;/*记录人猜次数的计数器变量*/unsigned in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 PPT 课件 循环 控制 结构
链接地址:https://www.31ppt.com/p-6504045.html