




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、循环构造程序设计第五章第五章1回想关系运算及其表达式关系运算及其表达式逻辑运算及其表达式逻辑运算及其表达式 if if 语句语句switch switch 语句语句目的while语句do while语句for 语句运用 break 和 continue 语句循环构造的嵌套goto语句循环构造程序设计运用什么是循环?=循环是程序中反复执行,直到满足指定条件才停顿的一段代码=C言语中,控制循环执行的条件用到了关系和逻辑运算符循环构造的 3 种类型for 循环循环while 循环循环do.while 循环循环多多 功功 能能当型循环当型循环先判别后执行先判别后执行直到型循环直到型循环先执行后判别先执
2、行后判别while 循环 2-1通用语法:while ( 表达式条件为表达式条件为true )语句语句 ;=语句可以是空语句、一个简单的语句或语语句可以是空语句、一个简单的语句或语句块句块(复合语句复合语句)=假设假设while循环中包含一组语句或是语句循环中包含一组语句或是语句块,必需用括起来循环体块,必需用括起来循环体=只需条件为真循环就会迭代只需条件为真循环就会迭代执行执行=文字描画:当表达式的值文字描画:当表达式的值非非0时,执时,执行其中的内嵌语句行其中的内嵌语句循环体循环体,然后回过头,然后回过头来再判别表达式的值,如此反复;当表达式来再判别表达式的值,如此反复;当表达式为假为假0
3、时终了循环时终了循环while 循环 2-2n例子:nk=1; while(k=100)s=s+k;k+循环控制循环控制表达式表达式循环控制循环控制变量变量循环体循环体留意:留意:1、假设循环体包含一条以上的语句,应以复合语句方式出现、假设循环体包含一条以上的语句,应以复合语句方式出现2、循环前,必需给循环控制变量赋初值、循环前,必需给循环控制变量赋初值3、循环体中,必需有改动循环控制变量值的语句、循环体中,必需有改动循环控制变量值的语句使循环趋向终了的语句使循环趋向终了的语句4、循环体可以为空、循环体可以为空 如:如:while(c=getchar()!=A);从键盘输入字符,直到输入从键盘
4、输入字符,直到输入A为止为止等价:等价:c=getchar();while(c!=A) c=getchar();while 循环 2-3#include main() int count = 1; /定义变量,用于控制循环while( count = 10) /while循环 printf(n This is iteration %dn ,count); count+; /循环变量的更改 printf(n The loop is completed. n ); 和和forfor循环不一样,循环不一样,whilewhile循环在执行循环在执行循环前检查条件循环前检查条件dowhile 循环 2-
5、1do.while do.while 循环中,至少执行一次循环体循环中,至少执行一次循环体中的代码中的代码在条件测试执行前执行一次语句,条件变为在条件测试执行前执行一次语句,条件变为 False False 时,时,do while do while 循环终止;控制权传送循环终止;控制权传送给紧跟在给紧跟在 while while 语句之后的语句语句之后的语句do 语句语句; while条件条件;通用语法通用语法不可省略!不可省略!切记切记!切记切记!dowhile 循环 2-2#include /头文件 main () int num1, num2; /定义变量 num2 = 0; /用于统
6、计个数的变量do printf(“nEnter a number : ); /提示 scanf(“%d,&num1); /输入变量的值 printf(“ No. is %d ,num1); /输出变量的值 num2+; /统计个数 while (num1 ! = 0); /判别条件printf (nThe total numbers entered were %d ,-num2);/输出总个数 接受并显示一些整数,直到输入接受并显示一些整数,直到输入零零,然后退出,然后退出整个循环,并打印输入的整数的个数整个循环,并打印输入的整数的个数for 循环=for循环的通用语法:=for(初始
7、化计数e1;条件测试e2;再求值参数e3)=语句;= =初始化计数是一个赋值语句,它在=进入循环前设置循环控制变量的初始=值,该语句只执行一次。=条 件 测 试 是 一 个 关 系 表 达 式 , 它决议何时退出循环=再 求 值 参 数 定 义 每 次 执 行 循 环 时 循环控制变量如何变化for 循环lfor 循环的三个部分必需用分号 (;) 隔开l组成循环体的语句可以是单个语句,也可以是复合语句,假设是复合语句应该加上l只需测试条件的求值结果为 “真 ,for 循环就继续执行。当条件变为 “假 时,程序将继续执行 for 循环后面的语句for 循环#include /头文件 main()
8、 int count; /定义变量printf(“tThis is a n);/提示 for(count = 1; count =10 ; count+) /for循环头部的定义 printf(“%dn, count); /循环体 for循环的其它方式nfor(e1;e2;e3)n语句;阐明n表达式1省略时,应在for前给循环变量赋初值。如k=1;for(;k=3;k+) s=s+k;n表达式2省略时,不判别循环条件,将成为“死循环,需求在循环体中引入break语句以退出循环n表达式3省略时,循环体内应有使循环条件改动的语句。如:nfor(k=1;k=3;)s=s+k;k+;n同时省略表达式1
9、和表达式3,只需表达式2,此时相当于while语句。如:nk=1;nfor(;k=3;)ns=s+k;k+;n表达式2普通是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只需其值不等于0就执行循环体。n如:for(k=1;k-4;k+) s=s+k;n 仅当k的值等于4时终止循环。k-4是数值表达式。k=1;while(k=3)s=s+k;k+;逗号运用于for循环#include /头文件main() int i, j , max; /定义变量 printf(“Please enter the maximum value n); /提示 printf(“for which a t
10、able can be printed: ); /提示 scanf(“%d, &max); /给变量赋值 for(i = 0 , j = max ; i =max ; i+, j-) /for循环 printf(“n%d + %d = %d,i, j, i + j); /循环体 在for循环中,初始化和增量部分可运用逗号表达式。初始化参数是 i=0,j=max,再求值增量参数有两个表达式组成: i+,j-n上机练习n1、求100以内的奇数、偶数之和while语句实现n2、求100以内的奇数、偶数之和for语句实现break 语句n用break语句可以终了switch构造和三种循环。#i
11、nclude /头文件头文件main () int a, b; /定义变量定义变量for(a = 1, b = 0;a =100; a+) /for循环循环/循环体循环体printf(“ Enter %d b : ,a); scanf(%d, &b); if(b=100) break; /当当b的值为的值为100时时,循环终止循环终止 Break语句强行终了循环,转向执行语句强行终了循环,转向执行循环语句下面的语句。循环语句下面的语句。跳转语句 =continue 语句让封锁循环进展下一次迭代语句让封锁循环进展下一次迭代=遇到该语句时,跳过循环体中剩余的语句,遇到该语句时,跳过循环体中
12、剩余的语句, 控制权传送给下一次循环控制权传送给下一次循环=在在while循环和循环和dowhile循环中,程序控制循环中,程序控制=权传送给条件测试语句权传送给条件测试语句=在在for循环中,循环中,continue影响循环的增量部分,影响循环的增量部分,=然后执行条件测试然后执行条件测试continue通用语法:通用语法:可以终了本次循环,即忽略循环体中剩余可以终了本次循环,即忽略循环体中剩余的语句。的语句。continue 语句#include /头文件main () int num; /定义变量for(num = 1; num =100; num+) /for循环 /循环体if(num
13、 % 9 = 0) /判别能否是9的倍数continue; /跳过本次循环执行下次循环printf(“%dt,num); /不是9的倍数那么输出 打印打印1-1001-100之间不能被整除的数之间不能被整除的数循环嵌套n一个循环体内包含着另一个完好的循环构造,就称为循环嵌套。n内嵌的循环中又可以嵌套循环,从而构成多重循环n三种循环可以相互嵌套P89嵌套 for 循环 2-1假设一个for循环出如今另一个for循环中,那么称它为嵌套循环for(i = 1; imax1; i+) for(j = 0; j = max2; j+) 嵌套 for 循环 2-2#include /头文件main() i
14、nt i, j, k; /定义变量printf(“Enter no. of rows:); /提示scanf(“%d, &i); /给变量赋值for (j = 0; j i ; j+) /for循环(控制行数) /循环体printf(“n); /换行输出for (k = 0; k = j; k+) /for循环(控制列数)printf(*); /循环体 这个程序是在每一行中显示这个程序是在每一行中显示“的数量添加的数量添加循环嵌套的阐明n嵌套的循环控制变量不能一样n内循环变化快,外循环变化慢n如:for(i=1;i=9;i+)nfor(j=1;j=I;j+)nprintf(“%1d*%
15、1d=%2d,i,j,i*j);nprintf(“n);nn正确确定循环体n循环控制变量常与求解的问题挂钩跳转语句 goto goto 语句将控制权传送给语句将控制权传送给C C程序中同一程序中同一 函数内的其他语句函数内的其他语句 语句标号:用于定义程序中的某个位置用标识语句标号:用于定义程序中的某个位置用标识符表示,不能只用数字符表示,不能只用数字它实际上违背了严峻的构造化程序设计言语的它实际上违背了严峻的构造化程序设计言语的原那么原那么它们降低了程序的可靠性,并使得程序难以维它们降低了程序的可靠性,并使得程序难以维护护goto label语句标号;语句标号;通用语法:通用语法:跳转语句r
16、eturn 语句用于从函数中前往语句用于从函数中前往return 语句可以带有值,该值将前往给语句可以带有值,该值将前往给调用程序调用程序它使执行前往到调用函数的位置它使执行前往到调用函数的位置表达式是可选的表达式是可选的一个函数中可以运用多个一个函数中可以运用多个return语句,但语句,但是遇到第一个是遇到第一个return语句时前往语句时前往return expression通用语法:通用语法:跳转语句 exit() exit() 用于跳出一个程序用于跳出一个程序是一个规范库函数是一个规范库函数该函数的用途是立刻终止程序,该函数的用途是立刻终止程序, 控制权交给操作系统控制权交给操作系统
17、exit(int return_code)通用语法:通用语法:循环构造程序设计运用循环构造程序设计运用1.标题:编写程序,输入一整数标题:编写程序,输入一整数n,在屏幕上输出高为,在屏幕上输出高为n的等腰三角形,如图的等腰三角形,如图n=3#include/头文件头文件main()int i,j,n; /定义变量定义变量printf(“n:);/输出语句输出语句,用作提示用作提示scanf(“%d,&n);/给变量给变量n赋值赋值for(i=1;i=n;i+) /循环循环n次,每次输出一行次,每次输出一行/循环体循环体for(j=1;jn-i;j+) /输出该行前面的空格输出该行前面的
18、空格printf(“ ); for(j=1;j=2*i-1;j+) /输出该行中的星号输出该行中的星号printf(“*);printf(“n);循环构造程序设计运用循环构造程序设计运用标题:古典问题:有一对兔子,从出生后第标题:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假设兔子都不死,问每个月的兔子总数为多少?到第三个月后每个月又生一对兔子,假设兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.2.程序源代码:程序源代码:
19、main()long f1,f2;/定义变量定义变量int i;f1=f2=1;/给变量赋值给变量赋值for(i=1;i=20;i+)/for循环构造循环构造 printf(“%12ld %12ld,f1,f2); /输出变量输出变量f1,f2的值的值.if(i%2=0) printf(n);/*控制输出,每行四个控制输出,每行四个*/f1=f1+f2; /*前两个月加起来赋值给第三个月前两个月加起来赋值给第三个月*/f2=f1+f2; /*前两个月加起来赋值给第三个月前两个月加起来赋值给第三个月*/本章总结while 循环do-while 循环for 循环goto语句break 和 continue 语句嵌套循环单元练习1分析下面的C言语代码: int a=1,b=10; do b-=a; a+; while (b-0); 那么执行循环语句后b的值为。选择一项 a)9 b) 2 c) -1 d)8单元练习(2)C言语中,while和dowhile循环的主要区别是。选择一项a)while的循环控制条件比dowhile的循环控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肉牛饲养与养殖经济效益提升试题考核试卷
- 2025年外籍员工劳动合同范本 外籍员工劳动合同模板
- 隧道衬砌工程安全施工方案
- 劳动合同中的危害告知二零二五年
- 公司团建活动合同
- 二零二五版押金合同范例
- 二零二五版担保合同书终止
- 二零二五贷款保证合同范例
- 2025年小学课后托管服务合同
- 游戏营销的双十一革新
- 我国区域发展战略 【核心知识精讲精思】 高一地理下学期 (湘教版2019必修第二册)
- 2023年美国AHA心肺复苏指南
- DL-T 2087-2020 火力发电厂热电联产供热技术导则
- GB/T 20840.103-2020互感器第103部分:互感器在电能质量测量中的应用
- (模版1)某标准件厂冷镦车间变电所设计
- 2022Z世代洞察报告QuestMobile
- 大专毕业论文3000字格式12篇
- 部编版语文六年级下册期末总复习
- 初中学生家长会安全教育课件
- 第二部分-CPO-10中央机房优化控制系统
- 2020新版个人征信报告模板
评论
0/150
提交评论