



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 C语句及控制结构4.1 C语句概述 C语句可分为四类:1.空语句: ; 作用:循环体和转向点2.表达式语句 表达式; 功能:表达式求值 如:1+3; a+b-c;常用的表达式语句: a=3; b+; I=1,j=2,k=3; a+=2; t=a,a=b,b=t; I=3*5+6;函数调用语句也属于表达式语句的一个特例,如: printf(“%dn”,5); ch=getchar(); putchar(ch); 4.1 C语句概述3.块(复合语句)语句组例: t=a; a=b; b=t;4.控制语句: 条件、循环 4.1 C语句概述4.2 关系运算符和关系表达式一、 关系运算符(6种)(
2、小于)(大于)=(大于或等于)=(等于)!=(不等于)二、关系表达式关系表达式的值是一个逻辑值,即“真”或“假”。如:“5=3”的值为“假”,“63” 的值为“真”.三、说明前4种关系运算符(,=)的优先级相同,后两种也相同。且前4种的优先级高于后两种。语言没有逻辑型数据,以整数1代表“真”,以0代表“假”。如:a=(53) 结果将a置为14.2 关系运算符和关系表达式4.3 逻辑运算符和逻辑表达式一、逻辑运算符(3种):! 逻辑非(一元运算符)& 逻辑与(二元运算符)| 逻辑或(二元运算符)逻辑运算符的操作数为逻辑型量优先顺序如下:!(非) &(与) |(或)二、运算规则!a: 若a为“真”
3、,则!a的值为“假”,若a为“假”,则!a的值为“真”。a&b: 若a和b皆为“真”,则a&b的值为“真”,否则为“假”。a|b: 若a和b皆为“假”,则a|b的值为“假”,否则为“真”。三、逻辑表达式表达式的结果最终是由逻辑运算符运算的称为逻辑表达式.如:a=3,b=2,c=4,d=5 则: (ab)&(cb) 值为 0 (ab)|(c3 & 2 | 8=a& chb) t=a; a=b; b=t; 如果写成 if(ab) t=a;a=b;b=t;则完全不同。表达式语句非00二、块if if(表达式) 语句1 else 语句2 例: if(ab) printf(“%d”,a); else p
4、rintf(“%d”,b);4.4 条 件 分 支 表达式语句1非00语句2三、if-else-if语句 if(表达式1) 语句 1 else if(表达式2) 语句 2 else if(表达式n) 语句 n else 语句 n+14.4 条 件 分 支 表达式1语句1非0表达式2表达式3表达式n语句22非0语句3非0语句n非0语句n+10例:将百分制成绩s1换为5分制成绩s2。 if(s160) if(s160) s2=1; s2=1; else if(s170) else s2=2; if(s170) else if(s180) 等价 s2=2; s2=3; else else if(s1
5、90) if(s180) s2=4; s2=3; else else s2=5; if(s1b) if(bb) if(bc) c=a; else c=b;4.4 条 件 分 支 计算 x-1 (x0)程序:main() int x,y; scanf(“%d”,&x); if(x0) y=x-1; else if(x=0) y=0; else y=x+1; printf(“x=%d,y=%d”,x,y);4.4 条 件 分 支 五、条件运算符 ?: (也叫三元运算符.)1.语法: ?:2.功能:如果表达式1的值是非0的,则其结果是表达式2的值,否则为表达式3的值.例1:printf(“max i
6、s%dn”,(ab)?a:b); 常常用条件表达式构成一个赋值语句 例: ch=(ch=a&ch=z)?ch-a+A:ch;3.注意 :?:的优先级仅比赋值运算符和逗号运算符高,故在和其它运算符混合使用时应在其两边加上括号。4.4 条 件 分 支 4.5 循 环一、while循环1. while语句的语法是: while(表达式) 语句 2. 功能:条件满足时执行循环体,条件不满足时结束循环转去执行下一条语句.0表达式语句非0语句非0表达式 例: main( ) int i=0; while(i4) printf(“%dn”,i+); printf(“Were out of the loopn
7、”); 运行结果: 4.5 循 环0123Were out of the loop3.注意while循环是“先判断,后执行”。如果刚进入循环时条件就不满足,则循环体一次也不执行。它相当于一条空语句。如:while(0)printf(“%dn”,x);循环条件一定要有不满足的时侯,否则将出现“死循环”。如:while(1)printf(“%dn”,x);循环体如果包含一个语句以上,应组成复合语句.如:while(ab)t=a;a=b;b=t;4.5 循 环 4.break语句作用:中断循环,例: main( ) int i=0; while (i1000) if(i=5) break; else
8、 printf(“%dn”,i); i+ ; printf(“the loop break outn”); 4.5 循 环 out 0 1 2 3 4 the loop break outbreak语句通常是和if语句一起使用的。例: 判别一 个整数n(n2)是否为素数.4.5 循 环 isprime(n) int n; int i=1; while(+in) if(n%i=0) printf(“%d is not primen”,n); break; if(i=n)/*是否被自己整除?*/ printf(“%d is primen”,n); 4.5 循 环 isprime(n) int n;
9、 int i=1; while(+in) if(n%i=0) printf(“%d is not primen”,n); i=n; if(i=n)/*是否被自己整除?*/ printf(“%d is primen”,n); 4.5 循 环 isprime(n) int n; int i=2; while(n%i)i+; if(i=n) printf(“%d is primen”,n); else printf(“%d is not primen”,n); 4.5 循 环5. continue语句 使用continue语句跳出本次循环体直接进入下一轮循环。continue通常要和if语句一起使用
10、。 main( ) int i=0; while(+i10) if(i=5) continue; printf(“%dn”,i); 4.5 循 环12346789 二、do-while循环1. do-while 循环的语法: do 语句 while(表达式);2. 注意:do-while循环是“先执行,后判断”。不管循环条件是否满足,循环体至少执行一次。等价于: s; while(e) s;循环体如果包含一个语句以上,应组成复合语句.同while循环一样,break和continue在 do-while 语句中也起相同的作用 .4.5 循 环表达式语句非00表达式语句非0 三、for 循环用于
11、定长循环(循环次数确定的循环)。还可以用于变长循环。且完全可以取代while循环。for语句的基本形式: for(e1;e2;e3) 语句这里e1,e2,e3都是表达式,分别对应着循环控制中的三个基本组成部分.即: 循环控制变量的初始化。 循环条件测试。 循环控制变量的增量操作。例: for(i=1;i=10;i+) sum = sum + i;4.5 循 环 我们可以将以上for循环用下面的while循环等价地表示: e1; while(e2) 语句 e3; 例: i=1; while(i=10) sum=sum+i; i+; 4.5 循 环0e2语句非0求解表达式e1求解表达式e3 例:求
12、2至32767之间的所有素数。 main() int i,n; for(n=2;n=32767;+n) for(i=2;n%i;+i); if(i=n) printf(“%dn”,n); 2 3 5 7 11 13 17 19 23.4.5 循 环说明: (1)for语句中的表达式可以部分省略或全部省略,但分号不能省略.如果e2省略,则认为测试结果恒为“真”。故循环将永远执行下去。例: for( ; ; ); for( ; ; ) putchar(a); 但下面循环不会永远执行下去 for( i=1;i+)sum = sum+i; (2)for语句中e1,e2,e3可以是任何有效的C语言表达式
13、.可以是逗号表达式 .例: for(i=1,sum=0;i5;i+,i+)sum+=i; 4.5 循 环(3) for语句的循环体由多个语句组成,要形成复合语句 .(4) 在for语句的循环体中使用break和continue语句。例: main( ) int i; for(i=1;i=100;+i) if(i=5) continue; printf(“%dn”,i); if(i=10) break; 12346789104.5 循 环。例:猴子第一天摘下若干个桃子,当天吃了一半,还不过瘾,又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天
14、再想吃时,只剩下一个桃子了。求第一天共摘下多少个桃子。设桃子总数为N1,则有: n1=2(n2+1) main() n2=2(n3+1) int i=1,s=1; n3=2(n4+1) for(;i=9;+i) s=2*(s+1); n9=2(n10+1) printf(“%dn”,s); n10=1 4.5 循 环 main( ) int i,s; for(i=1,s=1;i=9;+i,s+=s) +s; printf(The peachs number is %d n,s); out: The peachs number is 15344.5 循 环4.6 goto语句及语句标号goto语
15、句为无条件转向语句,其语法为: goto 语句标号;语句标号是一个标识符。其命名规则和变量名相同。语句标号只在说明它的函数中是可见的,不能重名。main() int i,s; i=1; s=0; loop: if(i=100) s+=i; +i; goto loop; printf(“%dn”,s); OUT :5054.7 switch 语句一、语法如下: switch(整型表达式) case 常量表达式1: 语句组1 case 常量表达式2: 语句组2 case 常量表达式n: 语句组n default: 语句组n+1 二 功能:求解关键字switch后面的表达式得到一个整型值。用该值和c
16、ase后面的整常数值逐个进行匹配,当和某个值匹配上后,则转去逐条执行该case以及所有后继case及default中的语句。如果一个也没有匹配上,则转去执行default后面的语句. main( ) int i=2; switch(i) case 1: printf(“Im in case 1n”); case 2: printf(“Im in case 2n”); case 3: printf(“Im in case 3n”); default: printf(“Im in defaultn”); Im in case 2 Im in case 3 Im in default4.7 switch 语句三、注意:switch后面括弧内的表达式可以为整型或字符型表达式.整型常量表达式之值必须互不相同。case 和 default 的出现顺序是任意的.case常量表达式只起语句标号作用,不进行条件判断,在执行完某个 case后面的语句后,将自动执行该语句后面的语句.多个 case可以共用一组执行语句. 例: switch(n) case 1: case 2: x=10; break; 4.7 switch 语句四、可使用break语句实现真正的多路分支.例: mai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤矿新员工入职管理
- 云南省宾川县四校2024-2025学年高三下学期高考模拟考试(三)英语试题含解析
- 山东省机场管理集团2025年应届毕业生校园招聘(67人)笔试参考题库附带答案详解
- 2025英大传媒投资集团有限公司高校毕业生招聘约5人(第二批)笔试参考题库附带答案详解
- 2025新兴际华循环科技公司管理岗位社会招聘3人笔试参考题库附带答案详解
- 2025年福建福州市鼓楼区城投集团招聘18人笔试参考题库附带答案详解
- 2025年安庆市大观控股集团有限公司校园招聘3人笔试参考题库附带答案详解
- 2024年度天津市护师类之儿科护理主管护师提升训练试卷A卷附答案
- 2025年中石化芜湖石油分公司招聘8人笔试参考题库附带答案详解
- 2024年度四川省护师类之护师(初级)模拟预测参考题库及答案
- 新疆维吾尔自治区初中学业水平考试英语答题卡
- 电动单梁起重机(双速)设计计算书
- 2023年上海嘉定区行政服务中心工作人员招聘笔试参考题库附带答案详解
- #2锅炉水冷壁安装施工方案
- 光伏混凝土钻孔灌桩基础施工方案方案
- 2022年四川省特种设备作业安全管理人员考试题库汇总(含真题和典型题)
- 公司发货通知单
- 工程指令单(工程变更)
- GB/T 247-2008钢板和钢带包装、标志及质量证明书的一般规定
- GB/T 24677.2-2009喷杆喷雾机试验方法
- GB 3796-2006农药包装通则
评论
0/150
提交评论