循环结构程序设计(新)ppt课件

上传人:我*** 文档编号:139788455 上传时间:2020-07-24 格式:PPT 页数:38 大小:323.50KB
返回 下载 相关 举报
循环结构程序设计(新)ppt课件_第1页
第1页 / 共38页
循环结构程序设计(新)ppt课件_第2页
第2页 / 共38页
循环结构程序设计(新)ppt课件_第3页
第3页 / 共38页
循环结构程序设计(新)ppt课件_第4页
第4页 / 共38页
循环结构程序设计(新)ppt课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《循环结构程序设计(新)ppt课件》由会员分享,可在线阅读,更多相关《循环结构程序设计(新)ppt课件(38页珍藏版)》请在金锄头文库上搜索。

1、1,复习:if语句和switch语句 常见的错误: If语句: #includestdio.h main() char c; c=getchar(); if(a=c=g) printf(yes); else printf(no); ,if(c=g),2,main() int x; printf(please input a number:); scanf(“%d”,x); /*给x赋值*/ if(x0); printf(%d is a positive number.n); else printf(%d is a nagative number.n); if(x%2=0); printf(%d

2、 is a even number.n); else printf(%d is a odd number.n);,四处错误:,3,main() int score,n; printf(please enter the score:); scanf(%d, ,4,编程实现如下功能:输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。,if语句的简单应用,5,程序:,main( ) int x; scanf (%d, ,6,switch语句的简单应用,编写程序实现如下功能:已知x=100,y=15,要求从键盘输入一个算术运算符(+、-、* 或 / ),并根据输入的运算符对x和

3、y进行指定的算术运算。,思路: 设x和y为float型变量并赋初值; 输入的运算符op为char型变量; 根据op的值(为+、-、*、/)进行x和y的相加、相减、相乘、相除运算(选择分支); 还要考虑到输入字符不是+、-、* 或 / 时的情况,7,#include stdio.h main( ) float x=100,y=15,z; char op; op=getchar( ); switch (op) case +: z=x+y; break; case -: z=x-y; break; case *: z=x*y; break; case /: z=x/y; break; default

4、: z=0; if(int)z!=0) printf(“%7.2f%c%7.2f=%fn,x,op,y,z); else printf (%c is not an operatorn,op); ,实型数通常不使用z=0或z!=0的比较 可用if(int)z) 代替,8,第四讲 循环结构,本章要点: 建立循环程序设计的基本概念和逻辑思维 掌握C语言循环程序设计的方法,9,内容提要: 循环就是在满足一定条件时重复执行一段程序。 构成循环的四种语句 几种循环的比较 循环的嵌套 break语句和continue,10,概 述 C语言中可用以下语句实现循环 用while语句当型循环先判断后执行 用do

5、while语句直到型循环先执行后判断 用for语句多 功 能 goto和if语句构成循环不 提 倡 (自学),11,1 while循环语句 1. while循环语句的形式 while(表达式) 语句序列,先判断条件,后执行语句,表达式,语句序列,零,非零,2. 执行过程,注意: 循环体若包含一个以上语句,应该用花括号括起来(使用复合语句。 循环体内,应注意设置修改循环条件的语句。否则循环无法终止。,12,【例1】编写程序,求100个自然数的和 即: s=1+2+3+ +100,思路:寻找加数与求和的规律,加数i从1变到100,每循环一次,使i增1,直到i的值超过100。i的初值设为1。 求和设

6、变量 sum 存放和,循环求sum=sum+i,直至i超过100。,13,main() int i=1,sum=0; while (i=100) sum=sum+i; i+; printf(%d,sum); ,14,说明: (1)执行while循环语句时,如果表达式的值第一次计算就等于0,则循环体一次也不执行。 (2)发生下列情况之一时,while循环结束执行: 表达式的值为0; 循环体内遇到break语句; 循环体内遇到return语句,此时退出while循环后,执行的流程从包含该while语句的函数返回到调用函数。,15,例2:输入一批正数,输入0时表示输入结束,求这些正数的和。,main

7、( ) int s=0, x; scanf(“%d”, ,16,2 dowhile循环语句 1. dowhile循环语句的形式 do 语句序列 while(条件表达式);,先执行语句,后判断条件,2. 执行过程,说明: (1) dowhile循环语句首先执行循环体,然后计算表达式并检查循环条件,所以循环体至少执行一次。 (2)退出dowhile循环的条件与退出while循环的条件相同。,17,例4:用do-while型循环求:,main() int i=1, sum=0; do sum=sum+i; i+; while (i=100); printf(%d,sum); ,18,注意:当whil

8、e后的表达式第一次计算结果为真时,while语句 和dowhile语句的结果相同,否则不同。,main( ) int i , s=0; scanf(“%d”, ,main( ) int i , s=0; scanf(“%d”, ,输入:2 打印:54 输入:12 打印:0,输入:2 打印:54 输入:12 打印:12,19,例 5:下面程序的运行结果是_。 main() int i=10; while( i-0); printf(“%dn”,i); ,main() int x=3; do printf(“%3d”,x-=2); while(!(-x); ,20,3 for 循环语句,1. fo

9、r循环语句的形式 for(表达式1;表达式2;表达式3)语句,2. 执行过程,21,3.说明: (1)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值) 例6:求:sum=1+2+3+100 main() int i, sum=0; for (i=1;i=100;i+) sum=sum+i; printf(%d,sum); ,22,main() int i, sum=0; for (i=1;i=10;i+) sum=sum+i*i; printf(%d,sum); ,求级数12+22+32+前10项之和。,23,(2)三个表达式均可缺省,但起分割作用的两个分号不可省略。 例如

10、:for( ; ; ) 相当于while (1) 语句 表达式1省略,应在for之前对循环变量赋初值 i=1; for( ; i=10 ; i+) sum=sum+i; ,24,表达式2省略,则不判断条件,循环无终止进行下去。 for(i=1 ; ; i+) sum+=i;,表达式3省略,则应另设法保证循环的结束. for(sum=0,i=1;i=10; ) sum=sum+i; i+; ,25,(3)表达式1和表达式3可为逗号表达式。 例: int i,j,sum; for( i=0,j=100;i=j;i+,j- ) sum=i+j;,26,编程举例:分别输出100以内所有偶数的和与所有奇

11、数的和。 main() int i,s1,s2; for(s1=s2=0,i=1;i100;i+) if(i%2=0) s2=s2+i; else s1=s1+i; printf(“s1=%d,s2=%dn”,s1,s2); ,27,4 三种循环语句的比较,for语句和while语句先判断条件,后执行语句,故循环体有可能一次也不执行,而dowhile语句的循环体至少执行一次。 必须在while 语句和dowhile语句之前对循环体变量赋初值,而for语句可在表达式1中对循环变量赋初值。 在循环次数已经确定的情况下,习惯用for语句;而对于循环次数不确定只给出循环结束条件的问题,习惯用while

12、语句解决。,28,5 循 环 的 嵌 套 定义:在循环体内又包含一个循环结构,称为循环嵌套。三种循环(while 、do_while、for)都可以嵌套。下面几种都是合法的嵌套形式:,for( ; ; ) while( ) for循环体嵌套while循环体,for( ; ; ) for( ; ; ) for循环体嵌套for循环,29,do do while( ); while( ); do_while循环体 嵌套do_while循环,while( ) do while( ); while循环体嵌套 do_while循环,while( ) for( ; ; ) while循环体嵌套for循环,d

13、o for( ; ; ) while( ); do_while循环体嵌套for循环,30,例: for 语句的循环嵌套例子。,求:sum=1+2+3+10 main() int i, sum=0; for(i=1;i=10;i+) sum=sum+i; printf(%d,sum); ,试编程计算:1,1+2,1+2+3,1+2+3+10各项的乘积,31,main() int i, j,x=1,sum=0; for(j=1;j=10;j+) for(i=1;i=j;i+) sum=sum+i; x=x*sum; sum=0; printf(%d,x); ,32,例7: for 语句的循环嵌套例

14、子。,for(i=1;i=2;i+) for(j=1;j=2;j+) printf(“%3d”,i+j); printf(“n”); output:,for(i=1;i=2;i+) for(j=1;j=2;j+) printf(“%3d”,i+j); printf(“n”); output:,2 3 3 4,2 3 3 4,33,6 break和continue语句,1. break 语句 语法: break ; 功能:终止包含该语句的最内层循环。 main( ) int n; for(n=100;n=200;n+) if(n%3= =0) break ; printf(“%6d”,n); ,

15、2. continue 语句 语法:continue ; 功能:结束循环体的本次执行。 main( ) int n; for(n=100;n=200;n+) if(n%3= =0) continue ; printf(“%6d”,n); ,34,3. 空语句 形式: ;(只由一个分号构成) 功能: 什么也不做。(可出现在程序中任何语句可以出现的地方) 例8:求级数12+22+32+,前10项之和。 main( ) int i, sum; for(sum=0,i=1;i=10;sum+=i*i, i+) ; printf(“sum=%dn”, sum); ,35,程序举例 例1 输入一个整数m,判断是否为素数。 若m不能被2m-1之间的任何一个整数整除,则m即为素数。 算法思想:设k=m-1,用2至m-1依次去除m, 若m能被2k之中任何一个整数整除,则不必除下去,肯定不是素数,跳出循环,(i=k+1.在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2k之间任一整数整除过,因此输出“是素数”。,36,程序如下: main( ) int m, i, k; scanf

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号