




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用C语言开发简单应用第九章条件语句上一章内容回顾算法算法的表示方法自然语言传统流程图N-S流程图伪代码计算机语言各种表示方法的比较结构化程序设计方法文档和注释的重要性2/32本章学习目标掌握if语句的使用掌握switch语句的使用理解break语句和goto语句了解语句的嵌套和嵌套深度了解程序语句的书写规范3/32内容进度C语句概述if语句if语句嵌套if语句使用和书写规则switch语句goto语句4/32C语句概述C语句:以“;”作分隔符,编译后产生机器指令。C语句分类表达式语句:表达式加分号构成空语句:;程序控制语句(9种):复合语句:用{}括起来的一组语句一般形式:{[数据说明部分;]
执行语句部分;
}说明:“}”后不加分号语法上和单一语句相同可以嵌套5/32total=total+limit;a=3;func();printf(“Hello,world!\n”);分支if()~else~switch循环for()~while()~do~while()辅助控制continuebreakgotoreturn内容进度C语句概述if语句if语句嵌套if语句使用和书写规则switch语句goto语句6/32if语句第一种形式:if(表达式)
语句7/32#include<stdio.h>voidmain(){inta=0;intb=0;intmax=0;printf("输入两个数据:\n");scanf("%d%d",&a,&b);max=a;if(max<b){max=b;}printf("大数是%d\n",max);}if语句第二种形式:
if(表达式)
语句1 else
语句28/32#include<stdio.h>voidmain(){inta=0;intb=0;intmax=0;printf("输入两个数据:\n");scanf("%d%d",&a,&b);if(a<b){ max=b;}else{ max=a;}printf("大数是%d\n",max);}if语句第三种形式:
if-else-if语句,其一般形式为:
if(表达式1)
语句1 else if(表达式2)
语句2 else if(表达式3)
语句3 ... else if(表达式m)
语句m else
语句n9/32if语句第三种形式:10/32#include<stdio.h>voidmain(){charc;printf("请输入一个字符:\n");scanf("%c",&c);if(c<32)printf("输入的是控制字符\n");elseif(c>='0'&&c<='9')printf("输入的是数字\n");elseif(c>='A'&&c<='Z')printf("输入的是大写字母\n");elseif(c>='a'&&c<='z')printf("输入的是小写字母\n");elseprintf("输入的是其它字符\n");}if语句注意问题:if关键字之后的表达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式等,甚至可以是一个变量或常量。如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句,但要注意的是在}之后不能再加分号。11/32if(a==b&&x==y)printf("a=b,x=y");if(3)printf("OK");if('a')printf("%d",'a');if(x)if(x!=0)if(!x)if(x==0)例:考虑下面程序的输出结果。
#include<stdio.h>voidmain(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf(“%d,%d\n”,x,y);}CompileError!内容进度C语句概述if语句if语句嵌套if语句使用和书写规则switch语句goto语句12/32If语句嵌套一般形式举例:13/32if(表达式)if(表达式)
语句
else
语句elseif(表达式)
语句
else
语句内嵌if语句内嵌if语句if(表达式)if(表达式)
语句
else
语句内嵌if语句if(表达式)
语句elseif(表达式)
语句内嵌if语句if(表达式)if(表达式)
语句内嵌if语句If语句嵌套应用举例:14/32#include<stdio.h>voidmain(){inta=0;intb=0;printf("请输入两个整型数据A和B:\n");scanf("%d%d",&a,&b);if(a!=b)if(a>b)printf("A>B\n");elseprintf("A<B\n");elseprintf("A=B\n");}if-else配对原则如果缺省{},else语句总是与它前面的最近的未配对的if配对。15/32#include<stdio.h>voidmain(){inta=0;intb=0;printf("请输入两个整型数据A和B:\n");scanf("%d%d",&a,&b);if(a!=b)if(a>b)printf("A>B\n");elseprintf("A<B\n");elseprintf("A=B\n");}if(……)if(……)if(……)else…...else…...else…...if-else配对原则16/32例:
if(a==b)if(b==c)printf(“a==b==c”);elseprintf(“a!=b”);修改:
if(a==b){if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);实现if-else正确配对方法:加{}应用举例例1:考虑下面程序输出结果。17/32#include<stdio.h>voidmain(){ intx=100; inta=10; intb=20; intv1=5; intv2=0; if(a<b) if(b!=15) if(!v1) x=1; else if(v2)x=10; printf("%d\n",x);}结果:100应用举例例2:编程实现如下功能:求一个数的绝对值。18/32#include<stdio.h>voidmain(){ intx=0; inty=0; printf("Enteraninteger:"); scanf("%d",&x); y=x; if(y<0) y=-y; printf("integer:%d--->absolutevalue:%d\n",x,y);}运行:Enteraninteger:-12integer:-12--->absolutevalue:12嵌套深度关于嵌套深度,不同的编码规范和标准的规定不同,有的定义为5~7层,其他定义或多或少,不管定义数量多少,其目的都是相同的,就是为了使代码容易理解、维护。嵌套的深度决定了程序的复杂程度,可以说,代码越简单,其可靠性也就越高,所以在编码时,在实现功能和满足要求的前提下,应尽量减少嵌套深度,使代码简化。19/32内容进度C语句概述if语句if语句嵌套if语句使用和书写规则switch语句goto语句20/32if语句使用和书写规则当布尔表达式与一个常值进行比较时,一般把常值放在前面。有多个if语句嵌套时,要层层对齐,每一层的真假分支使用括号括起来并对齐。21/32if(2!=(a+b)%6)
if(x>y){}else{if(y>z){}else{}}if语句使用和书写规则布尔表达式中有多个逻辑“与”判断条件时,只要其中一个条件不满足则该表达式的值就是“假”,注意在else分支中,不能假定某个逻辑表达式为“真”而进行处理,导致错误。布尔表达式中有多个逻辑“或”判断条件时,只要其中一个条件满足则该表达式的值就是“真”,注意不能假定某个逻辑表达式为“真”而进行处理,导致错误。22/32if(0!=a&&0!=c){}else{ x=y/c;}if(0!=a||0!=c){
x=y/c;}if语句使用和书写规则不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。 假设布尔变量名字为flag,它与零值比较的标准if语句如下:
其它的用法都属于不良风格,例如:23/32if(flag)/*表示flag为真*/if(!flag)/*表示flag为假*/if(flag==TRUE)if(1==flag)if(flag==FALSE)if(flag==0)if语句使用和书写规则不可将浮点变量用“==”或“!=”与其它变量或数字比较,应设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将
转化为:24/32if(x==0.0)/*隐含错误的比较*/if((x>=-EPSINON)&&(x<=EPSINON))内容进度C语句概述if语句if语句嵌套if语句使用和书写规则switch语句goto语句25/32switch语句一般形式:
switch(表达式){
case常量表达式1: 语句1 break; case常量表达式2: 语句2 break; ... case常量表达式n: 语句n break; default:
语句n+1
}26/32switch语句流程图:27/32switch表达式语句组1语句组2语句组n语句组…...E1E2Endefaultcaseswitch语句说明:E1,E2,…,En是常量表达式,且值必须互不相同语句标号作用,通常用break跳出多个case可共用一组执行语句case后可包含多条语句,且不必加{}可嵌套28/32case‘A’:case‘B’:case‘C’: printf(“score>60\n”);break;switch(score){ case5:printf(“Verygood!”);case4:printf(“Good!”);case3:printf(“Pass!”);case2:printf(“Fail!”);default:printf(“dataerror!”);}switch语句应用举例:29/32#i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小草教育资源网
- 2025年春国开电大《形势与政策》形考任务专题测试1-5及大作业
- 思想工作总结范例
- 律师执业情况总结
- 2025新款民间借贷抵押借款合同范本
- 阳光棚制作合同范本
- 大量移动脚手架租赁合同
- 小学生爱国教育
- 梅毒防控培训课件
- 买房公寓合同标准文本
- 山东省汽车维修工时定额(T-SDAMTIA 0001-2023)
- 《铜产业链》课件
- 临床疗效总评量表(CGI)
- 寺庙开发运营项目融资计划书
- 2023年上海市杨浦区社区工作者招聘考试真题
- 《凤仙花开花了》参考课件
- 风湿免疫科类风湿关节炎一病一品优质护理汇报课件
- 2022-2023学年重庆市重庆市两江新区部编版四年级下册期末考试语文试卷答案
- 2022年火力发电厂焊接技术规程-电力焊接规程
- JCT2156-2012 纤维玻璃原料及配合料COD值的测定
- (完整版)庭审笔录(刑事普通程序)
评论
0/150
提交评论