循环控制课件_第1页
循环控制课件_第2页
循环控制课件_第3页
循环控制课件_第4页
循环控制课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 循环控制重点:1)三种循环结构当型循环与while语句直到型循环与do while语句次数循环与for语句2)break语句和continue语句第1页,共48页。一、概述循环结构:在一定的条件下,重复执行一组语句。被重复执行的语句称为“循环体”实现循环结构的语句有3种:1.while语句2.dowhile语句3.for语句第2页,共48页。当 (i小于20 )练习:输出20以内的所有整数i=1i小于20输出i真假程序结束i=i+1重复操作(循环)输出ii=i+1循环体whilei20 printf(“%d”,i);i=i+1;第3页,共48页。#include void main()

2、int i; i=1; while(i=20)printf(“%d”,i); i=i+1;1、循环结构之while语句形式:while (条件) 循环体 第4页,共48页。功能:在程序遇到while时,首先检查条件是否成立,若成立则执行循环体语句,然后再去检查条件,若条件仍然成立则继续执行循环体,依次反复,直到某个时刻条件不再成立,则退出循环执行后续语句。用来实现“当型”循环流程图:条件p循环体真假后续语句1、循环结构之while语句形式:while (条件) 循环体 第5页,共48页。练习:输出100以内所有整数。#include void main()int i=1; while(i100

3、) printf(“%d”,i); i=i+1; if(i%3=0)能被3整除的数。注:(1)循环体如果包含一个以上的语句,应该用花括号括起来,组成复合语句。(2)循环体中必须有使循环趋向结束的语句,否则会出现死循环。i=i+1;第6页,共48页。i=1i小于20输出i真假程序结束i=i+1例题:输出20以内的所有整数i=1i小于20输出i真假程序结束i=i+1二者的区别?先判断再执行操作先执行操作再进行条件判断第7页,共48页。i=1i小于20输出i真假程序结束i=i+1实现形式:while(条件) 循环体第8页,共48页。i=1i小于20输出i真假程序结束i=i+1实现形式:do 循环体

4、while(条件);2、循环结构之dowhile语句注意不要漏掉分号第9页,共48页。#include void main() int i=1; while(i20) printf(“%d”,i); i=i+1; 例题:输出20以内的所有整数改成dowhile结构doprintf(“%d”,i); i=i+1; while(i20);第10页,共48页。do 语句与dowhile的区别while () 循环体do 循环体while();循环体至少执行一次有可能循环体一次也执行不到。第11页,共48页。#include void main() int i=1; while(i20) printf

5、(“%d”,i); i=i+1; #include void main() int i=1; do printf(“%d”,i); i=i+1; while(i20); 20;20;比较两个程序的异同!第12页,共48页。作用:使变量的值增1或减1补充: 自增、自减运算符 + -1)该运算符为单目运算符,其运算对象只能是变量,不能为常量或者表达式。例如:i+ x- - 都是正确的 5+ (x+y)+ 都是错误的2)该运算符作前缀、后缀都可以例如 i+ +i i- - - -i 都是正确的3)对变量而言 i+ 或者+i都相当于i=i+1 i- -或者- -i 都相当于i=i-1第13页,共48页

6、。程序的输出结果为3)但如果作为表达式,前缀和后缀则不同:前缀:先运算再取值后缀:先取值再运算例如: void main() int i=3; printf(“%dn”,i+ ); +i34第14页,共48页。下列程序的输出结果为void main()int i=5,j; j=i+; printf(“i=%d,j=%dn”,i,j); 程序结果:i=6,j=5j=+i;i=6,j=6第15页,共48页。4)多用于循环语句中,使变量自增或者自减,也用于指针变量,使指针指向下一个或者前一个地址。例如前例中:第16页,共48页。#include void main() int i=1; while(

7、i20) printf(“%d”,i); i=i+1; #include void main() int i=1; do printf(“%d”,i); i=i+1; while(i20) ; i+;i+;第17页,共48页。例题:求 s=1+2+3+4+100s=0s+1ss+2ss+3ss+99ss+100ss+ii+11+21+2+31+2+3+991+2+3+99+100第18页,共48页。S=0,i=1i=100s=s+i真假输出si=i+1main()int i,s; i=1; s=0;while (i=100) s=s+i; i+; printf(“s=%dn”,s); 第19页

8、,共48页。练习:求p=5!main()int i ,p; i=1; p=1; while (i=5) p=p*i; i+; printf(“p=%dn”,p); S=0,i=1i=100s=s+i真假输出si=i+1p=15p=p*ip第20页,共48页。作业:1:编写一个猜数的小游戏。游戏规则:由计算机随机产生一个100以内的整数,用户猜该数是多少,如果没有猜对,则系统提示“太大”或者“太小”,然后继续猜。直到猜对为止。(guess.c)2:编程进行100以内的四则运算练习。并统计做题的总数、答对题的数目和答错题的数目。(opration.c)3:输入一个任意位数的正整数,然后由低位到高位

9、输出每一位上的数字。如输入456789,则输出9,8,7,6,5,4引申练习:可以玩多次的猜数游戏,知道不想玩为止。引申练习:输入一个任意位数的正整数,然后由高位到低位输出每一位上的数字。如输入446789,则输出4,5,6,7,8,9第21页,共48页。for( )#include void main() int i; i=1 ; while(i20) printf(“%d”,i); i+; i=1i20i+;基本形式:for(表达式1;表达式2;表达式3) 循环体printf(“%d”,i);第22页,共48页。3、循环结构之for语句(1)形式:多用于已经知道循环次数确定的情况下,也可以

10、用于已知循环条件的情况。使用最为灵活。for(表达式1;表达式2;表达式3) 循环体(2)执行过程:求解表达式1判断表达式2真循环体表达式3假循环体后的语句第23页,共48页。for(表达式1;表达式2;表达式3) 循环体注:一般情况下各部分表达式的作用:表达式1:循环变量赋初值表达式2:循环成立的条件表达式3:循环变量的变化所以,for语句最多的采用形式为:for(循环变量赋初值;循环条件;循环变量变化) 循环体例如:for(i=0;i8;i+) 第24页,共48页。例:main()int i,s=0;i=1; while (i=100) s=s+i; i+; printf(“s=%dn”,

11、s);/循环变量赋初值/循环条件/循环变量的变化/循环语句用for语句实现:for( ; ; )i=1i=100i+s=s+i;第25页,共48页。for(循环变量赋初值;循环条件;循环变量变化) 循环体注:1)各个部分均可省略,但分号不能省。省略表达式1:应在for语句之前给循环变量赋初值。for(i=1;i=100;i+) s=s+i;i=1; 省略表达式2:不进行循环条件的判断,则循环将会无终止的执行下去,即死循环。for(i=1; i=100;i+) s=s+i;第26页,共48页。 省略表达式3:可以在循环体内实现循环变量的变化for(i=1; i=100;i+) s=s+i; i+

12、; 注:2)各个部分可以为各种形式的与循环无关的表达式,各表达式之间用逗号隔开。main()int i,s; s=0; for( i=0;i=100; i+) s+=i; printf(“sum is %dn”,s);s=0,s+=i , ;第27页,共48页。main()int i;for(i=1;i=4;i+)printf( );练习:输出4的乘法表1*4=4 2*4=8 3*4=12 4*4=16“ ”,*4=%d%d i,i*4第28页,共48页。练习:输出九九乘法表(lt5_5.c)1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9 1*9=9 2*9=18 3*9=

13、27 9*9=81main()int i;for(i=1;i=4;i+) printf(“%d* 4 =%d ”,i, i*4 );j%dj, for(j=1;jx)if(yx)第32页,共48页。#include #include #include void main()int x,y; srand(time(0); /以系统时钟作为随机种子 x=rand()%100; /产生随机数 printf(请输入你猜的数据:“);scanf(“%d”,&y);printf(“太大了!n“);elseprintf(“太小了!n“);if(yx)while(y!=x);doif(yx)while(y!=

14、x); printf(请输入你猜的数据:);scanf(“%d”,&y);改成while结构while(y!=x); printf(请输入你猜的数据:“);scanf(“%d”,&y);printf(“太大了!n“);elseprintf(“太小了!n“);if(yx)doif(yx)第34页,共48页。提示:太大了太大了是提示:太小了是提示:猜对了。 程序结束系统产生数据输入数据猜对了吗否否第35页,共48页。例题:编程判断一个数是否为素数(质数)。素数是大于1的整数,除了1和本身之外不能被其他的任何数整除。例如:3,7,11,13,19,23,31等第36页,共48页。void main(

15、)int x,i; scanf(“%d”,&x);输入xi=2x与i能否整除?真i+ix假假退出循环真for(i=2;i=x) printf(“non”);else printf(“yesn”);if(x%i=0)break;第37页,共48页。5、break语句作用:跳出其所在的循环体。提前结束该层循环。练习:输出100以内的所有素数。第38页,共48页。练习:将下面程序补充完整,使程序计算100以内所有可被7整除的自然数之和。 #include void main() int x=1; int sum=0; while(1) if(x100) _; if( )sum=sum+x; x+;

16、printf(“%dn”,sum); breakx%7=0第39页,共48页。程序分析题#include voidmain() inti,j;for(i=l;i=4;i+=1) for(j=2;j=4;j+=j) if(i+j5) printf(+); else printf(*); 第40页,共48页。6、contine语句作用:结束本次循环。即跳过本次循环体中尚未执行的语句。注:并没有中止整个循环。例:分析以下程序的运行结果main()int i;for(i=1;i=5;i+)if(i%2) printf(“*”); else continue; printf(“#”); printf($

17、n”);*#*#*#$第41页,共48页。练习:以下程序的输出结果为:main()int a=1,b;for(b=1;b=8) break; if(a%2=1) a+=5);continue; a-=3; printf(%dn,b);4第42页,共48页。课程回顾一、+、-运算符 注意:作为前缀和后缀的区别。二、3中循环语句:whiledowhilefor写出每一种语句的格式(通式):while(条件) 循环体 do 循环体 while(条件);for(表达式1;表达式2;表达式3) 循环体 for(循环变量赋初值;循环条件;循环变量变化)第43页,共48页。三、影响循环执行的2种语句:终止本层循环:终止本次循环:breakcontinue第44页,共48页。

温馨提示

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

评论

0/150

提交评论