C语言 循环结构程序设计.pptx
《C语言 循环结构程序设计.pptx》由会员分享,可在线阅读,更多相关《C语言 循环结构程序设计.pptx(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.1 5.1 whilewhile语句语句真(非零)表达式 循环体假(零)第五章 5.1 while语句1、while 语句的形式语句的形式:while(表达式)循环体;2、while 语句语句 常常称为称为“当型当型”循环语循环语句。句。第1页/共60页3、说明、说明:先判断表达式,后执行语句。先判断表达式,后执行语句。表达式同表达式同ifif语句后的表达式一样,可以是语句后的表达式一样,可以是任何类型的表达式。任何类型的表达式。循环体多于一句时,用一对循环体多于一句时,用一对 括起括起。whilewhile循环结构常用于循环次数不固定,根循环结构常用于循环次数不固定,根据是否满足某个条件
2、决定循环与否的情况。据是否满足某个条件决定循环与否的情况。第五章 5.1 while语句第2页/共60页例:分析下列程序段的循环次数例:分析下列程序段的循环次数i=1;while(i0)printf(+);else printf(-);scanf(%f ,&x);判断正负号判断正负号 第五章 5.1 while语句第4页/共60页#include stdio.h void main()char ch;int num=0;ch=getchar();【例【例5-2】统计从键盘输入的一行字符的个数统计从键盘输入的一行字符的个数(以回车键作为输入结束标记)。(以回车键作为输入结束标记)。while(c
3、h!=n)判断是否输入结束判断是否输入结束num+;ch=getchar();第五章 5.1 while语句printf(num=%dn,num);第5页/共60页注意注意 第五章 5.1 while语句表达式在判断前,必须要有明确的值。表达式在判断前,必须要有明确的值。循环体中一般有改变条件表达式的语句。循环体中一般有改变条件表达式的语句。while(while(表达式表达式)后面没有分号。后面没有分号。第6页/共60页5.2 5.2 do-whiledo-while语语句句1、do-while的形的形式:式:do 循环体;循环体;while(表达式);表达式);2、do-while语句语句
4、 常常称为称为“直到型直到型”循环语循环语句。句。真(非零)表达式 循环体假(零)第五章 5.2 do-while语句第7页/共60页3、说明、说明:先先执行执行语句语句,后判断,后判断表达式表达式。第一次条件为真时,第一次条件为真时,while,do-while等价;等价;第一次条件为假时,二者不同。第一次条件为假时,二者不同。第五章 5.2 do-while语句第8页/共60页【例例5-35-3】用用do-whiledo-while语语句句编编写写程程序序统统计计从从键键盘盘输输入入的的一一行行非非空空字字符符的的个个数数(以以回回车车键键作作为为输输入入结结束标记)。束标记)。#incl
5、ude stdio.hvoid main()char ch;int num=0;ch=getchar();do num+;ch=getchar();while(ch!=n);printf(num=%dn,num);第五章 5.2 do-while语句第9页/共60页注意注意在在if、while语句中,表达式后面都没有分语句中,表达式后面都没有分号,而在号,而在do-while语句的表达式后面则必语句的表达式后面则必须加分号。须加分号。do-while和和while语句相互替换时,要注语句相互替换时,要注意修改循环控制条件意修改循环控制条件。第五章 5.2 do-while语句第10页/共60页
6、5.3 5.3 forfor语句语句1、for的形式:的形式:for(初始表达式初始表达式1;条件表达式;条件表达式2;循环表达式;循环表达式3)循环体循环体;表表达达式式1:用用于于循循环环开开始始前前为为循循环环变变量量设设置置初初始始值。值。表达式表达式2:控制循环执行的条件,决定循环次数。:控制循环执行的条件,决定循环次数。表达式表达式3:循环控制变量修改表达式。:循环控制变量修改表达式。循环体语句:循环体语句:被重复执行的语句。被重复执行的语句。第五章 5.3 for 语句第11页/共60页表达式3计算表达式1循环体判断表达式2零非零for的下一条语句2、执行过程、执行过程 第五章
7、5.3 for 语句第12页/共60页 for(i=1;i=100;i+)sum=sum+i;例如:例如:它相当于以下语句:它相当于以下语句:i=1;while(i=100)sum=sum+i;i+;表达式表达式1 1;while(表达式表达式2)表达式表达式3 3;第五章 5.3 for 语句第13页/共60页3、说明说明三个表达式都可以是逗号表达式。三个表达式都可以是逗号表达式。三个表达式都是任选项,都可以省略,但要注意省略表达式后,分号间三个表达式都是任选项,都可以省略,但要注意省略表达式后,分号间隔符不能省略。隔符不能省略。第五章 5.3 for 语句第14页/共60页 1、for语句
8、中表达式省略的形式语句中表达式省略的形式(1)for语句一般形式中的语句一般形式中的“表达式表达式1”可以省略;可以省略;如:如:sum=0;i=1;for(;i100)break;sum=sum+i;学生自学 第五章 5.3 for 语句第16页/共60页1、for语句中表达式省略的形式语句中表达式省略的形式(3)表达式)表达式3也可以省略,但此时保证循环能正常结束如:也可以省略,但此时保证循环能正常结束如:for(sum=0,i=1;i=100;)sum=sum+i;i+;学生自学 第五章 5.3 for 语句第17页/共60页 (4)可以省略表达式可以省略表达式1和表达式和表达式3,只有
9、表达,只有表达式式2,如:,如:i=1;sum=0;for(;i=100;)sum=sum+i;i+;学生自学1、for语句中表达式省略的形式语句中表达式省略的形式i=1;sum=0;while(i100)break;sum=sum+i;i+;相当于相当于 第五章 5.3 for 语句第19页/共60页(6)循环体为空语句)循环体为空语句 对对for语句,循环体为空语句的一般形式为语句,循环体为空语句的一般形式为:for(表达式表达式1;表达式;表达式2;表达式;表达式3);如如:for(sum=0,i=1;i=100;sum+=i,i+);学生自学1、for语句中表达式省略的形式语句中表达式
10、省略的形式 要要在在显显示示器器上上复复制制输输入入的的字字符符,输输入入的的字字符符为为.时时,结束循环。结束循环。输入输入abcdefg.输出输出abcdefg.while(putchar(getchar()!=.);第五章 5.3 for 语句第20页/共60页(1)在进入累加前先给累加器赋初值(一般为)在进入累加前先给累加器赋初值(一般为0););(2)用循环语句实现累加;)用循环语句实现累加;for(循环变量赋初值;循环条件;循环变量改变规律)循环变量赋初值;循环条件;循环变量改变规律)(3)循环体语句的设计。)循环体语句的设计。累加器当前值累加器当前值=累加器原值累加器原值+循环变
11、量当前值循环变量当前值;典型例题分析典型例题分析【例【例5-45-4】求累加和求累加和1+2+3+1+2+3+1000+1000基本方法基本方法:第五章 5.3 for 语句属于属于“累加器累加器”类型问题。类型问题。第21页/共60页累加器赋初值累加器赋初值求偶数和2+4+6+100参考程序:参考程序:void main()long int k,s;s=0;for(k=1;k=1000;k+)s=s+k;printf(s=%ld,s);累加累加思考 第五章 5.3 for 语句第22页/共60页(1)给累乘器赋初值,一般为)给累乘器赋初值,一般为1;(2)用循环语句实现累乘;)用循环语句实现
12、累乘;for(循环变量赋初值;循环条件;循环变量改变规律)循环变量赋初值;循环条件;循环变量改变规律)(3)循环体设计。)循环体设计。累乘器当前值累乘器当前值=累乘器原值累乘器原值*循环变量当前值;循环变量当前值;例例5-5:求累乘积。求累乘积。如:如:123.100基本方法基本方法:第五章 5.3 for 语句属于属于“累乘器累乘器”类型问题。类型问题。第23页/共60页累乘器赋初值累乘器赋初值求n!=1 2 3 n参考程序:参考程序:void main()double s=1;int k;for(k=1;k=100;k+)s=s*k;printf(s=%lf,s);累乘累乘思考 第五章 5
13、.3 for 语句整数连乘结果一定是整数,而整数连乘结果一定是整数,而本例中结果数值相当大,用本例中结果数值相当大,用longlong型都无法存放,因此将存型都无法存放,因此将存放累乘结果的变量放累乘结果的变量s s定义为定义为doubledouble型。型。第24页/共60页例例5-6 判断一个数是否为素数判断一个数是否为素数?一个数一个数x在在2,sqrt(x)范围内没有因子,范围内没有因子,我们就称其为素数(质数)我们就称其为素数(质数)主要编程方法:循环变量终值法、标记变主要编程方法:循环变量终值法、标记变量法量法 第五章 5.3 for 语句第25页/共60页#include mat
14、h.h void main()int x,k;scanf(%d ,&x);排除法:如果有因子,排除法:如果有因子,不再往下判断是否是素不再往下判断是否是素数数循环变量终值法循环变量终值法for(k=2;ksqrt(x)printf(%d is a prime ,x);else printf(%d is not a prime ,x);在判断范围内无因在判断范围内无因子,程序正常终止子,程序正常终止有因子,程序有因子,程序非正常终止非正常终止 第五章 5.3 for 语句第26页/共60页#include math.h void main()int x,k,f=1;scanf(%d ,&x);排
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 循环结构程序设计 语言 循环 结构 程序设计
限制150内