第三章C编程语句.ppt
《第三章C编程语句.ppt》由会员分享,可在线阅读,更多相关《第三章C编程语句.ppt(96页珍藏版)》请在三一办公上搜索。
1、面向对象程序设计(一),吕俊白,第三章 C+编程语句,重点:关系表达式,逻辑表达式;if语句、switch语句、各种循环语句。,3.1程序的控制结构,ANSI(American National Standards Institute美国国家标准化协会)规定的一些常用流程图符号:,3.1程序的控制结构,程序设计中的三种基本结构:顺序结构选择结构循环结构,1顺序结构,n条语句自上而下排列,并按排列的顺序自上往下逐条执行:结构图:(P:16),根据指定条件的当前值在两条或多条程序路径中选择一条执行。结构图:(P:16),在C+中,通常用if语句或switch语句来实现选择结构。,3.循环结构(P:
2、16),在C+中,用于实现循环结构的语句有:for语句、while语句、do while语句。,3.2 C+的语句概述,1C+的控制语句,3.2 C+的语句概述,2空语句:;空语句是一种特殊形式的语句,它什么都不做。一般用在if语句的分支中,表示该分支为空。3复合语句(又称为块语句)是指括在一对花括号 里的语句序列。一般用于构成if语句的分支或循环语句的循环体。,3.3关系表达式与逻辑表达式,3.3.1关系运算符与关系表达式(P:114)一、关系运算符C+提供了六种关系运算,相应的运算符为:大于()小于(=)小于等于(=)比较(=)不等于(!=),优先级相同(高),优先级相同(低),注意:关系
3、运算符的优先级低于算术运算符,但高于赋值运算符。(P:105),二、关系表达式,关系表达式的一般形式为:运算对象关系运算符运算对象例如:(1)3.1415926*r*r100(2)sex=f都是关系表达式。具体操作:在计算两个运算分量的值后,对它们进行比较操作,若符合运算符指出的关系,其结果为1(true),否则为0(false)。作用:描述关系运算。运算对象:数值型数据、字符型数据、枚举型数据等。关系运算其运算结果为:1(true真)或0(false假)。,二、关系表达式,在编程时,关系表达式常用于描述简单的条件。例如:数学(math)成绩在60分以上关系表达式:math=60,3.3.2逻
4、辑运算符与逻辑表达式,例如:数学(math)、语文(chinese)、英语(english)三门课均在60分以上如何描述?一、逻辑运算符(P:114)C+语言提供了三种逻辑运算符:逻辑非:!逻辑与:&逻辑或:|,高低,3.3.2逻辑运算符与逻辑表达式,二、逻辑表达式与逻辑运算逻辑表达式逻辑表达式的格式:逻辑运算符!运算对象运算对象逻辑运算符&或|运算对象作用:描述逻辑运算。运算对象:逻辑数据(0或1)或关系表达式。,2.逻辑运算法则,!:逻辑非,其运算法则如下:!0 1!1 0&:逻辑与,其运算法则如下:(P:117表4-2)0&0 0 0&1 0 1&0 0 1&1 1&:只有当两个运算对象
5、均为1时,表达式值才为1.,2.逻辑运算法则,|:逻辑或,其运算法则如下:(P:117表4-2)0|0 0 0|1 1 1|0 1 1|1 1|:只有当两个运算对象均为0时,表达式值才为0.,逻辑运算其运算结果与关系运算相同为:1(true真)或0(false假)。例如:数学(math)、语文(chinese)、英语(english)三门课均在60分以上math=60&chinese=60&english=60,3.短路表达式(P:117),(1)如果多个表达式用&连接,则一个表达式的值为假,将使整个连接而成的表达式的值为假。例如:设n=3,m=6执行 n4&m+80|humi50C+利用这个
6、特点来产生高效的代码。,3.4 if语句(P:27),1.if 语句的语法if 语句的一般形式:if(expression)statement1;else statement2;/用 括起的为可选项uexpression:通常是关系表达式或逻辑表达式,偶而也可以用算术表达式,或其它表达式。ustatement:可以是C+的任何语句。,3.4 if语句,以上一般形式涵盖了if语句的下面两种形式:(1)if(exp)statement;(2)if(exp)statement1;else statement2;形式(1)不包含else子句,可以看成是形式(2)的特例。,3.4 if语句,2.if语句
7、的作用在程序中,if语句用于构造选择结构,实现程序分支的选择与执行。3.if语句的语义if语句的语义可用流程图描述如下:(P:28图2-1),3.4 if语句,例1:如果a比b大则交换变量a,b中的内容。if(ab)temp=a;a=b;b=temp;问题:为什么要使用temp?,如果if条件后面的语句不止一条,则要用花括号写成语句块。,3.4 if语句,例2:从a,b两个数中挑选值最大者。if(ab)max=a;else max=b;,例3:我们以60分作为考试的合格线,如果数学(math)、语文(chinese)、英语(english)三门课考试成绩均在60分以上,则输出”考试合格”,否则
8、输出”考试不合格”。,/exam_condiction.cpp#include using namespace std;void main()float math,chinese,english;coutmathchineseenglish;if(math=60,5.if语句的嵌套(P:29),if语句的嵌套是指在一个 if语句中又出现另一 if语句。if语句出现在statement1中称为前嵌套;if语句出现在statement2中称为后嵌套。,(1)后嵌套多重if语句,例5:男性并且年龄45岁以下视为合格人选,女性并且年龄40岁以下视为合格人选。程序段:if(sex=m 特点:if与els
9、e仍旧可以唯一地配对。,(2)前嵌套多重if语句及嵌套的歧义性问题,例6:把例5的挑选条件改为,男性且45岁以下,女性不限制年龄。试问以下程序正确否?,程序段2:if(sex=m)错误 if(age=45)cout 合格男性!n;else cout 合格女性!n;,if if s11 else s2,if if s11 else s12,C+语言规定:每个else只与在它前面的距它最近的那个未配对的if配对。,(3)解决嵌套if语句的二义性,避免二义性的方法:方法一:用花括号 来强制配对在例6程序段2的第一个if语句中插入一对花括号。if(sex=m)if(age=45)cout 合格男性!n
10、;else cout 合格女性!n;,(3)解决嵌套if语句的二义性,方法二:把每层if语句的else子句都写全if(sex=m)if(age=45)cout 合格男性!n;else;/利用空语句else cout 合格女性!n;,建议:尽量少用前嵌套,多用后嵌套。,3.5条件操作符和条件表达式,1.条件表达式的语法:(条件)?表达式1:表达式2操作符(?:)是C+中唯一的一个三元操作符。2.语义计算给定条件的值;若条件的值为真,则计算表达式1;否则计算表达2。3.作用:描述条件判断。,例如:y=0(x=0)y=x0?0:1等价于下面的if语句:if(x0)y=0;else y=1;,注意:条
11、件运算符构成表达式,它是有值的。而if else语句不能有值,所以,if else语句不能替代条件运算符。例如:下面的代码不能由if else替代:cout(ab?a:b)endl;由于条件操作符的优先级较低,所以整个条件表达式一般总要带上括号。,条件运算符可以嵌套例如:xy?“Greater than”:x=y?“Equal to”:“Less than”等价于:(xy)?“Greater than”:(x=y)?“Equal to”:“Less than”)当x=y时,值为“Equal to”;当xy 时,值为“Greater than”;否则,值为“Less than”。即:操作符(?:
12、)的结合性为右左先运算右边,在一个条件表达式中,如果后面两个表达式的值的类型相同,且均为左值,则该条件表达式的值为左值。例如:int x=5;long a,b;(x?a:b)=1;/right!(x?x:a)=2;/error!/任何被转换的变量都不是左值(x=2?1:a)=3;/error!1为非左值,例如:下面的程序段中包含一个条件表达式,指出该程序段的功能。char ch;cin ch;ch=(ch=A,该程序段的功能是:输入一个字符存放到ch变量中,利用条件表达式判断该字符是大写还是小写,若是大写字符则转换成小写字符。,3.6 switch语句,if 语句是二分支选择语句;switch
13、语句是多分支选择语句。在解决实际问题时,我们常常需要用到多分支选择。例如:根据学生考试成绩的等级输出百分制分数段。等级(grade)百分制分数段A90 100B80 89C70 79D60 69E60,这是一个多分支选择的问题。从流程图中我们可以看出:可用嵌套的if else语句来实现。,#include using namespace std;void main()char grade;cout grade;if(grade=A)cout90100endl;else if(grade=B)cout8089endl;else if(grade=C)cout70-79endl;else if(g
14、rade=D)cout6069endl;else if(grade=E)cout60endl;else coutError!endl;,1.switch语句的一般形式:,switch(expression)case constant 1:statement sequence 1;case constant 2:statement sequence 2;case constant n:statement sequence n;default:statement sequence n+1;,解释:,expression:表达式,也称为开关表达式。注意:表达式只能是整型、字符型或枚举型表达式。如果是
15、其它类型的表达式将引起编译错误。constant:常量表达式。switch语句中包含n个常量表达式,与case一起作为n个分支的标号。注意:case后面的常量表达式之类型必须与switch后面括号中表达式的类型匹配。,解释:,statement sequences:语句序列,可以由一个到多个语句组成。当语句序列中出现另一switch语句时,称为switch的嵌套。default:表示当开关表达式的取值不等于已列出的常量表达式的值时的一种特殊处理。default分支(第n+1个分支)也被称为“意外分支”,它可以缺省。switch 语句中最多包含n+1个语句组,对应n+1个可执行分支。,2.swi
16、tch语句的作用,在程序中,switch语句用于实现多分支的选择与执行。,3.switch语句的语义,(1)计算开关表达式(expression)的值;(2)当表达式的值与某一case后面的常量表达式值相等时,就执行此 case后面的语句组;如果语句组中带有break语句,则遇到break语句时,流程将跳转至switch语句的下一语句;否则,顺序执行该语句组以下的各个语句组,直至最后一个语句组。若所有case中的常量表达式值都没有与表达式(expression)的值匹配,就执行 default后面的语句,若无default语句,则直接退出switch语句。即:根据表达式(expression)
17、的值选择对应的分支,并执行其后语句组。,4.注意:,同一个switch语句中的n个常量表达式的值必须互不相同。case与default并不改变控制的流程,所以,在程序中case通常与break联用,以保证多路分支的正确实现。,程序段1:colors color;/设colors是一个已定义好的枚举类型 switch(color)case Red:cout 红色 endl;case Blue:cout 兰色 endl;case Green:cout 绿色 endl;如果color的值是Blue,则输出:兰色 绿色。,程序段2:colors color;/设colors是一个已定义好的枚举类型sw
18、itch(color)case Red:cout 红色 endl;break;case Blue:cout 兰色 endl;break;case Green:cout 绿色 endl;如果color的值是Blue,则仅输出兰色。,例如:,4.注意:,在每个case分支都带有break的情况下,case的次序不影响执行结果。分支的语句组如果包含多个语句,可不用加花括号,即无须表示成复合语句形式。多个case可以共用一组执行语句。,当grade 的值为A,B,C,D时都输出”考试合格!”。char grade;/switch(grade)case A:case B:case C:case D:co
19、ut”考试合格!n”;,char grade;/switch(grade)case A,B,C,D:cout”考试合格!n”;/Error!,例如:,注意:几种情况都执行同一操作时,不能简单地将其值用逗号隔开,在一个case中实现。,4.注意:,switch语句可以嵌套。case与default标号是与包含它的最小的 switch相联系的。例如:int i,j;switch(i)case 1:/case 2:switch(j)case 1:/case 2:/case 3:/,例如:对于上例,根据学生考试成绩的等级输出百分制分数段。,用switch语句编写程序如下:#include using
20、namespace std;void main()char grade;cout grade;switch(grade)case A:cout90-100endl;break;,case B:cout80-89endl;break;case C:cout70-79endl;break;case D:cout60-69endl;break;case E:cout60endl;break;default:coutError!endl;,switch语句与if语句的区别:,switch语句只能对确定值进行条件测试,而且受到数据类型的限制。if语句可以计算关系表达式或逻辑表达式的值.if 语句与swi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 编程 语句

链接地址:https://www.31ppt.com/p-5940659.html