您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 《C语言程序设计》课件第4章_循环结构程序设计
C程序设计2020/2/221第四章循环结构程序设计4.1为什么需要循环控制4.2用while语句实现循环4.3用do---while语句实现循环4.4用for语句实现循环4.5循环的嵌套4.6几种循环的比较4.7改变循环执行的状态4.8循环程序举例C程序设计2020/2/2224.1为什么需要循环控制在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题要向计算机输入全班50个学生的成绩分别统计全班50个学生的平均成绩求30个整数之和教师检查30个学生的成绩是否及格C程序设计2020/2/2234.1为什么需要循环控制例如:全班有50个学生,统计各学生三门课的平均成绩。C程序设计2020/2/224scanf(“%f,%f,%f”,&s1,&s2,&s3);aver=(s1+s2+s3)/3;printf(“aver=%7.2f”,aver);输入学生1的三门课成绩,并计算平均值后输出scanf(“%f,%f,%f”,&s1,&s2,&s3);aver=(s1+s2+s3)/3;printf(“aver=%7.2f”,aver);输入学生2的三门课成绩,并计算平均值后输出要对50个学生进行相同操作重复50次C程序设计2020/2/225大多数的应用程序都会包含循环结构循环结构和顺序结构、选择结构是结构化程序设计的三种基本结构,它们是各种复杂程序的基本构造单元C程序设计2020/2/2265.2用while语句实现循环全班有50个学生,统计各学生三门课的平均成绩。C程序设计2020/2/227i=1i≤50输入一个学生成绩求一个学生平均成绩输出一个学生平均成绩i增1YN用while循环结构实现while(i=50){scanf……;aver=……;printf……;i++;}C程序设计2020/2/228while语句的一般形式如下:while(表达式)语句循环体C程序设计2020/2/229while语句的一般形式如下:while(表达式)语句“真”时执行循环体语句“假”时不执行循环条件表达式while循环的特点是:先判断条件表达式,后执行循环体语句C程序设计2020/2/2210例4.1求1+2+3+…+100,即解题思路:这是累加问题,需要先后将100个数相加要重复100次加法运算,可用循环实现后一个数是前一个数加1而得加完上一个数i后,使i加1可得到下一个数1001nnC程序设计2020/2/2211#includestdio.hintmain(){inti=1,sum=0;while(i=100){sum=sum+i;i++;}printf(sum=%d\n,sum);return0;}复合语句不能少inti=1,sum=1;while(i100){i++;sum=sum+1;}C程序设计2020/2/2212#includestdio.hintmain(){inti=1,sum=0;while(i=100){sum=sum+i;i++;}printf(sum=%d\n,sum);return0;}不能丢,否则循环永不结束C程序设计2020/2/22134.3用do---while语句实现循环do---while语句的特点:先无条件地执行循环体,然后判断循环条件是否成立do---while语句的一般形式为:do语句while(表达式);表达式YN循环体语句C程序设计2020/2/22144.3用do---while语句实现循环例4.2用do…while语句求:1+2+3+…+100,即1001nnC程序设计2020/2/22154.3用do---while语句实现循环解题思路:i≤100YNsum=sum+ii=i+1sum=0i=1i=1;sum=0;do{sum=sum+i;i++;}while(i=100);C程序设计2020/2/2216#includestdio.hintmain(){inti=1,sum=0;do{sum=sum+i;i++;}while(i=100);printf(sum=%d\n,sum);return0;}C程序设计2020/2/2217例4.3while和do---while循环的比较。inti,sum=0;printf(“i=?”);scanf(“%d”,&i);while(i=10){sum=sum+i;i++;}printf(“sum=%d\n,sum);inti,sum=0;printf(“i=?”);scanf(“%d”,&i);do{sum=sum+i;i++;}while(i=10);printf(“sum=%d\n,sum);当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同;否则不相同C程序设计2020/2/22184.4用for语句实现循环for语句不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况for语句完全可以代替while语句C程序设计2020/2/2219printf(%d,i);i++i=100i=14.4用for语句实现循环for(i=1;i=100;i++){printf(%d,i);}i≤100YNi=i+1i=1输出iC程序设计2020/2/22204.4用for语句实现循环for语句的一般形式为for(表达式1;表达式2;表达式3)语句设置初始条件,只执行一次。可以为零个、一个或多个变量设置初值执行C程序设计2020/2/22214.4用for语句实现循环for语句的一般形式为for(表达式1;表达式2;表达式3)语句循环条件表达式,用来判定是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环C程序设计2020/2/22224.4用for语句实现循环for语句的一般形式为for(表达式1;表达式2;表达式3)语句作为循环的调整器,例如使循环变量增值,它是在执行完循环体后才进行的C程序设计2020/2/22234.4用for语句实现循环for语句的执行过程:(1)先求解表达式1(2)求解表达式2,若其值为真,执行循环体,然后执行下面第(3)步。若为假,则结束循环,转到第(5)步(3)求解表达式3(4)转回上面步骤(2)继续执行(5)循环结束,执行for语句下面的一个语句C程序设计2020/2/2224表达式3计算表达式1循环体判断表达式2零非零for的下一条语句执行过程C程序设计2020/2/2225用for语句实现循环表达式2?执行语句成立不成立执行for循环之后的语句执行表达式3执行表达式1循环初始条件循环控制条件循环体for语句等价于下列语句:表达式1;while(表达式2){语句;表达式3;}C程序设计2020/2/22264.4用for语句实现循环for语句最简单的应用形式也就是最易理解的如下形式:for(循环变量赋初值;循环条件;循环变量增值)for(i=1;i=100;i++)sum=sum+i;等价于i=1;while(i=100){sum=sum+i;i++;}用for语句更简单、方便C程序设计2020/2/22274.4用for语句实现循环for(表达式1;表达式2;表达式3)语句一个或两个或三个表达式均可以省略C程序设计2020/2/2228用for语句实现循环说明:(1)for语句的一般形式中的“表达式1”可以省略,如:i=1;sum=0for(;i=100;i++)sum=sum+i;C程序设计2020/2/2229说明:(2)表达式2省略,即表达式2始终为真。例如:for(i=1;;i++)sum=sum+i;它相当于:i=1;while(1){sum=sum+1;i++;}用for语句实现循环C程序设计2020/2/2230说明:(3)表达式3省略。但此时程序设计者应另外设法保证循环能正常结束。如:for(i=1;i=100;){sum=sum+i;i++;}i++的操作不放在for语句的表达式3的位置处,而作为循环体的一部分,效果是一样的,都能使循环正常结束。用for语句实现循环C程序设计2020/2/2231说明:(4)可以省略表达式1和表达式3for(;i=100;)while(i=100){sum=sum+i;相当于{sum=sum+i;i++;}i++;}在这种情况下,for完全等同于while语句。可见for语句比while语句功能强除了可以给出循环条件外,还可以赋初值,使循环变量自动增值等。用for语句实现循环C程序设计2020/2/2232说明:(5)3个表达式都可省略for(;;)相当于while(1)语句即不设初值,不判断条件(认为表达式2为真值),循环变量不增值。无终止地执行循环体。用for语句实现循环C程序设计2020/2/2233说明:(6)表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。如:for(sum=0;i=100;i++)sum=sum+i;表达式3也可以是与循环控制无关的任意表达式。用for语句实现循环C程序设计2020/2/2234说明:表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。如:for(sum=0,i=1;i=100;i++)sum=sum+i;或for(i=0,j=100;i=j;i++,j--)k=i+j;表达式1和表达式3都是逗号表达式,各包含两个赋值表达式,即同时设两个初值,使两个变量增值.用for语句实现循环C程序设计2020/2/2235说明:在逗号表达式内按自左至右顺序求解如:for(i=1;i=100;i++,i++)sum=sum+i;相当于for(i=1;i=100;i=i+2)sum=sum+i;用for语句实现循环C程序设计2020/2/2236说明:(7)表达式可以是C的任意合法表达式。如:关系表达式:i=100逻辑表达式:ab&&xy数值表达式或字符表达式只要其值为非零,就执行循环体。用for语句实现循环C程序设计2020/2/2237说明:①for(i=0;(c=getchar())!=‘\n’;i+=c);在表达式2中先从终端接收一个字符赋给c,然后判断此赋值表达式的值是否不等于)‘\n’(换行符),如果不等于)‘\n’,就执行循环体。注意:此for语句的循环体为空语句,把本来要在循环体内处理的内容放在表达式3中,作用是一样的。可见for语句功能强,可以在表达式中完成本来应在循环体内完成的操作。用for语句实现循环C程序设计2020/2/2238说明:②for(;(c=getchar())!=‘\n’;)printf(″%c″,c);for语句中只有表达式2,其作用是每读入一个字符后立即出该字符,直到输入一个“换行”为止。请注意:从终端键盘向计算机输入时,是在按Enter键以后才将一批数据一起送到内存缓冲区中去的。运行情况:Computer↙(输入)Computer(输出)而不是Ccoommppuutteerr用for语句实现循环C程序设计2020/2/2239注意:C语言中的for语句比其他语言(如BASIC,PASCAL)中的FOR语句功能强得多。可以把循环体和一些与循环控制无关的操作也作为表达式1或表达式3出现,这样程序可以短小简洁。但过分地利用这一特点会使for语句显得杂乱,可读性降低,最好不要把与循环控制无关的内容放到for语句中用for语句实现循环C程序设计2020/2/22404.4用for语句实现循环for(sum=0;i=100;i++)sum=sum+i;与循环变量无关合法C程序设计2020/2/22414.4用for语句实现循环for(sum=0,i=1;i=100;i++)sum=sum+i;逗号表达式合法for(i=0,j=100;i=j;i++,j--)k=i+j;C程序设计2020/2/22424.
本文标题:《C语言程序设计》课件第4章_循环结构程序设计
链接地址:https://www.777doc.com/doc-3804390 .html