kj-第5章循环结构程序的设计课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《kj-第5章循环结构程序的设计课件.ppt》由会员分享,可在线阅读,更多相关《kj-第5章循环结构程序的设计课件.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1页第第5章章 循环结构程序的设计循环结构程序的设计本章概述 本章的学习目标主要内容第2页本章概述本章概述l本章主要通过大量程序实例介绍本章主要通过大量程序实例介绍while、do-while及及for循环结构的使用方法循环结构的使用方法l本章还将介绍初学者编程难点之一的多重本章还将介绍初学者编程难点之一的多重循环结构的使用方法循环结构的使用方法l在本章中还会介绍较多的程序算法在本章中还会介绍较多的程序算法第3页本章的学习目标本章的学习目标l本章教学目的:本章教学目的:l掌握几种循环语句(掌握几种循环语句(goto、while、do-while、for)的使用方法)的使用方法l掌握掌握bre
2、ak和和continue语句的使用方法语句的使用方法l能使用嵌套方法编写程序。能使用嵌套方法编写程序。l本章教学重点:掌握本章教学重点:掌握while、do-while、for循环语句循环语句l本章教学难点:循环嵌套本章教学难点:循环嵌套第4页主要内容主要内容5.1 while语句和语句和do-while语句语句5.2 for语句语句5.3 嵌套循环结构嵌套循环结构5.4 break语句和语句和continue语句语句5.5 goto语句和用语句和用goto语句构成的循环语句构成的循环5.6 程序设计举例程序设计举例5.7 本章小结本章小结 第5页 5.1 while语句和语句和do-whil
3、e语句语句lwhile语句用来实现语句用来实现“当型当型”循环结构,循环结构,其一般形式如下:其一般形式如下:l while(表达式)l 循环体语句l其执行过程是:其执行过程是:l计算表达式的值,若表达式为非计算表达式的值,若表达式为非0值时,值时,执行执行while语句中的循环体语句,并再语句中的循环体语句,并再次计算表达式的值,此过程重复执行,次计算表达式的值,此过程重复执行,一直到表达式的值为一直到表达式的值为0,循环结束。,循环结束。5.1.1 while语句语句第6页例 5.1 求1+3+5+7+99的值# include int main() int i,n,sum=0; i=1;
4、 while(i=99) sum+=i; i+=2; printf(sum=%dn,sum); return 0; 第7页对于对于while语句,有几点需要注意:语句,有几点需要注意:(1)循环体若包含一个以上的语句,应该用花括弧括起来。若不加花括弧,则while循环体语句的范围只到while后面第一个分号处。(2)若表达式的值为0,循环体一次也不执行.(3)在循环体中一定要有使循环趋向于结束的语句,否则循环永不结束,形成死循环。第8页5.1.2 do-while语句一般格式:一般格式: do 循环体语句组循环体语句组; while(循环继续条件循环继续条件); /*分号不能缺省*/思考题:思
5、考题:例题例题5.1用用do-while语句如何来实现?语句如何来实现?第9页执行过程:执行过程:(1)先执行循环体语句组。)先执行循环体语句组。(2)计算)计算“循环继续条件循环继续条件”表达式。表达式。若若“循环继续条件循环继续条件”表达式的值为表达式的值为非非 0(真),则转向(真),则转向(1)继续执行;)继续执行;否则,转向(否则,转向(3)。)。(3)执行)执行do-while的下一条语句。的下一条语句。do-while循环语句循环语句最重要的特点最重要的特点是:先执行是:先执行一次循环体语句组,然后再判断循环条件一次循环体语句组,然后再判断循环条件。第10页例例5.25.2 从键
6、盘输入若干个数求和,当和大于200时停止执行。# include int main()int x,sum=0; do scanf(%d,&x); sum+=x; while(sum=200); printf(sum=%dn,sum); return 0; 第11页本题思路:本题思路:为了实现逆序输为了实现逆序输出一个正整数,需要把该数出一个正整数,需要把该数按逆序逐位拆开,然后输出。按逆序逐位拆开,然后输出。从一个数中分离一位数,从一个数中分离一位数,可以对可以对10求余求余.345 num 345%10=5 digit345/10=34 num 34%10=4 digit34/10=3 nu
7、m 3%10=3 digit3/10=0 num当num最后变成0时,处理过程结束。 赋值给例例5.35.3 从键盘输入一个正整数,各位数码顺序颠倒输出。如输入345,输出543。 # include # include int main()int main()int num,digit; int num,digit; printf(Input a number: ); printf(Input a number: ); scanf(%d,&num); scanf(%d,&num); do digit=num%10; do digit=num%10; printf(%d,digit); pri
8、ntf(%d,digit); num/=10; num/=10; while(num!=0); while(num!=0); printf(n); return 0; printf(n); return 0; 第12页 5.2 for语句语句1、一般格式:、一般格式:for(表达式(表达式1;表达式;表达式2;表达式;表达式3) 循环体语句组;循环体语句组; (1 1)若表达式)若表达式1 1存在,则先计算表达式存在,则先计算表达式l l的值,然后转向的值,然后转向步骤(步骤(2 2),若表达式),若表达式1 1不存在,则直接进入步骤(不存在,则直接进入步骤(2 2)。)。 (2 2)计算表达
9、式)计算表达式2 2的值,若其值为真(值为非的值,若其值为真(值为非0 0),则执),则执行行forfor语句中指定的循环体语句,然后执行下面第(语句中指定的循环体语句,然后执行下面第(3 3)步。)步。若为假(值为若为假(值为0 0)则结束循环,转到第()则结束循环,转到第(4 4)步。)步。 (3)若表达式)若表达式3存在,则计算表达式存在,则计算表达式3的值,然后转向步的值,然后转向步骤(骤(2),若表达式),若表达式3不存在,则直接转向步骤(不存在,则直接转向步骤(2)。)。 (4)循环结束,执行)循环结束,执行for语句下面的一个语句。语句下面的一个语句。 图5.3for语句流程图第
10、13页 for语句是语句是C语言中最灵活也是应用最广泛的循环结构,语言中最灵活也是应用最广泛的循环结构,可以替代可以替代while和和do-while语句语句思考题:例题思考题:例题5.1用用for语句如何实现?语句如何实现?例例5.4输入一个110间的整数,用for语句求这个数的阶乘。main()int i,sum;for(sum=0,i=1;i=99;i=i+2) sum=sum+i;printf(“the num is %d”,sum);# include # include int main()int main()int i,n; long s=1;int i,n; long s=1;
11、 scanf(%d,&n); scanf(%d,&n); for(i=1;i=n;i+) s for(i=1;i=n;i+) s* *=i;=i; printf(%d!=%ldn,n,s); printf(%d!=%ldn,n,s); return 0; return 0; 第14页1、for后面括号里的3个表达式都可以省略,但其中的两个分号不能省略 for( ; ; ) printf(“#”);2、若表达式1被省略,则应在for语句之前给循环变量赋初值。 i=1; sum=0; for(;i=10; i+) sum+=i;3、若表达式2被省略,即不判断循环条件,则循环无终止地进行下去。也就是
12、认为表达式2始终为真4 4、若表达式3被省略,则程序设计者应另外设法保证循环能正常结束。 for语句需要注意的是:语句需要注意的是:第15页5、若省略表达式1和表达式3,只有表达式2,即只给循环条件,则在这种情况下,完全等同于while语句 i=1; sum=0; for(;i=10; ) sum+=i; i+; 6、若3个表达式都省略时,则无终止地循环7、表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式例如:for(sum=0,i=0;i=10;i+) sum+=i;8 8、表达式2可以是任何合法的C语言表达式 只要其值为非零,就执行循环体 第16页例例5.55
13、.5 输入一行字符并计算出字符个数 #includeint main() int n=0; printf(Input a string: ); for(; getchar()!=n; n+); printf(%dn,n); 程序中的循环条件为getchar()!=n,判断从键盘输入的字符是不是回车。第17页5.3 嵌套循环结构嵌套循环结构 循环的嵌套是指一个循环体内又包含另一个完整的循环结构。内嵌的循环中还可以嵌套循环,这就是多层循环。 while循环、dowhile循环和for循环不仅可以自身嵌套,而且可以互相嵌套 例例5.65.6 在屏幕上输出如下的一张九九乘法表1*1=11*2=2 2*
14、2=4 1*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 第18页 思路: 九九乘法表,共有9
15、行;我们可以用一个循环变量i来依次表示第i(1 i 9)行; 对于第i行来说,它又有i个等式, 可以用一个循环变量j来依次表示第j(1 j i)个等式;第i行第j列的等式刚好是j和i相乘的式子。 # include # include int main()int main()int i,j;int i,j; for(i=1;i10;i+) for(i=1;i10;i+) for(j=1;j=i;j+) for(j=1;j=i;j+) printf(%d printf(%d* *%d=%-3d,j,i,i%d=%-3d,j,i,i* *j);j); printf(n); printf(n); r
16、eturn 0; return 0; 第19页例例5.75.7 在计算机屏幕上输出如下图形。 * * * *思路: 上述图形中,共有5行,可以通过循环依次输出每一行。 每一行中可分成两部分,前面由若干个空格组成,后面是由若干个星号组成。具体空格和星号由当前的行数来决定 。# include # include int main()int main()int i,j,k,n=5;int i,j,k,n=5; for(i=0;in;i+) for(i=0;in;i+) for(j=0;jn-i;j+) for(j=0;jn-i;j+) printf( ); printf( ); for(k=0;k
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- kj 循环 结构 程序 设计 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内