《c++第三章表达式和语句.ppt》由会员分享,可在线阅读,更多相关《c++第三章表达式和语句.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 C+简单程序设计3.1 3.1 表达式表达式3.2 3.2 算术运算符算术运算符3.3 3.3 算术类型转换算术类型转换3.4 3.4 增增量与减量量与减量3.5 3.5 关系与逻辑表达式关系与逻辑表达式3.6 if3.6 if语句语句3.7 3.7 条件运算符条件运算符3.8 3.8 逗号表达式逗号表达式3.9 3.9 求值次序求值次序3.1表达式表达式概述概念:表达式、求值次序、结合性概念:表达式、求值次序、结合性C+C+语语言言的的运运算算符符按按其其在在表表达达式式中中与与运运算算对对象象的的关关系系(连连接接运算对象的个数)可分为:运算对象的个数)可分为:l l单目运算符(一
2、元运算符,只需一个操作数)单目运算符(一元运算符,只需一个操作数)l l双目运算符(二元运算符,需两个操作数)双目运算符(二元运算符,需两个操作数)l l三目运算符(三元运算符,需三个操作数)三目运算符(三元运算符,需三个操作数)3.1表达式左值和右值左值左值=右值右值如:如:a=3;a=3;b=a;b=a;3.1表达式优先级和结合性结结合合性性:一一般般都都是是从从左左到到右右结结合合,但但单单目目运运算算符符、条条件件运运算算符、赋值缩写运算符的结合性从右到左。符、赋值缩写运算符的结合性从右到左。优先级:优先级:P35 P35 表表3-13-13.1表达式语句和块语句以分号结束;语句以分号
3、结束;空语句:;空语句:;块:即复合语句,是指在一对花括号里的语句序列。块:即复合语句,是指在一对花括号里的语句序列。3.2 算术运算符操作符种类+、-、*/:对于整数是整除,对于浮点数是一般除法,如:5/2=2;5.0/2=2.5%取余,只能对整数进行操作,如5%2=1;3.2 算术运算符赋值缩写x=x+y;=x+=y;x=x-y;=x-=y;x=x*y;=x*=y;x=x/y;=x/=y;3.2 算术运算符溢出溢出:一个变量被赋予一个超出其数据类型表示范围的数溢出:一个变量被赋予一个超出其数据类型表示范围的数值。它一般不会发生编译错误,但会导致结果发生偏差。值。它一般不会发生编译错误,但会
4、导致结果发生偏差。延伸:计算机的数据采用补码的形式存放。延伸:计算机的数据采用补码的形式存放。如:如:intint weight=42896;weight=42896;结果变量值为结果变量值为-22640-22640 1010011110010000 1010011110010000 转二进制转二进制 1101100001101111 1101100001101111 取反取反 1101100001110000 +11101100001110000 +1-22640-22640 简单方法:简单方法:-(65536-4289665536-42896)3.3 算术类型转换 转换总朝表达数据能力更强
5、的方向,并且转换总是逐个运转换总朝表达数据能力更强的方向,并且转换总是逐个运算符进行的。(短算符进行的。(短长长)3.3 算术类型转换 隐式转换:即自动转换,由编译器自动完成的类型转换。如1+2.0显式转换:即强制转换,由程序员显式指出的类型转换,转换格式如下:类型名(表达式)(类型名)表达式如:long(12)、(long)123.4 增量和减量自增自增+:自动加:自动加1 1自减自减-:自动减:自动减1 1前缀:变量值加前缀:变量值加(减减)1)1,然后新值赋给变量。,然后新值赋给变量。如:如:b=+a;-a;b=+a;-a;后缀:变量值加后缀:变量值加(减减)1,)1,但修改变量值但修改
6、变量值如:如:b=a+b=a+;a-;a-;综合:综合:c=c=a+ba+b;c=;c=a+ba+b;c=;c=a+ba+b;3.5关系运算符关系运算符(1)关系运算符用于两个值进行比较,运算结果为true(真)或false(假),分别用值非0(true)或0(false)表示。(2)关系运算符都是双目运算符,其结合性是从左到右,、=运算符的优先级相同,=和!=运算符的优先级相同,前者运算的优先级高于后者。(3)关系运算符的优先级低于算术运算符。3.5关系运算符逻辑运算符C+中的逻辑运算符为:&(逻辑与),|(逻辑或),!(逻辑非)。逻辑表达式的结果为真则为1,结果为假则为0。逻辑非(!)是单
7、目运算符,逻辑与(&)和逻辑或(|)是双目运算符。逻辑非的优先级最高,逻辑与次之,逻辑或最低。逻辑运算真值表如表1-3所示。表1-3逻辑运算真值表(真为非0,假为0)3.5关系运算符短路表达式如如果果多多个个表表达达式式用用&连连接接,一一个个表表达达式式为为假假,则则整整个个表表达式的值为假,不用再计算其后的表达式。达式的值为假,不用再计算其后的表达式。如如果果多多个个表表达达式式用用|连连接接,一一个个表表达达式式为为真真,则则整整个个表表达达式的值为真,不用再计算其后的表达式。式的值为真,不用再计算其后的表达式。如:如:intint n=3,m=6;if(n4&m+4&m+2);a=5,
8、b=3;if(b!=0|a/b2);3.6 if语句if语句语法格式语法格式 如果如果 (我考试过了我考试过了)那么那么 我请大家吃饭我请大家吃饭if(if(chch=b)=b)coutcouta;a;if(if(chch=b)=b)coutcouta;a;if(if(chch=b);=b);coutcouta;a;3.6 if语句ifelse语句语法格式语法格式 如果如果 (我考试过了我考试过了)那么那么 我请大家吃饭我请大家吃饭 否则否则 你帮我出报名费你帮我出报名费,呵呵呵呵if(if(chch=b)=b)coutcouta;a;elseelsecoutcoutchch;if(if(ch
9、ch=b)=b)coutcouta;a;elseelse coutcoutchch;3.6 if语句解决二义性就近未匹配原则:else连接到上面第一个没有配对且为可见的if上。p463.7条件运算符(1 1)条条件件运运算算符符“?:?:”是是C+C+中中惟惟一一的的三三目目运运算算符,其形式为:符,其形式为:表达式表达式1?1?表达式表达式2:2:表达式表达式3 3(2 2)条件运算符的结合性是自右向左。)条件运算符的结合性是自右向左。(3 3)条条件件运运算算符符的的优优先先级级别别高高于于赋赋值值运运算算符符,低低于关系运算符和算术运算符。于关系运算符和算术运算符。x=ax=ab?a:b
10、b?a:b;if(aif(ab)b)x=a;x=a;elseelsex=b;x=b;3.7条件运算符如果后面两个表达式的值类型相同,均为左值,则该条件运算符表达式可在赋值号左边。(x?a:b)=1;(x?a:1)=1;注意:C语言不支持此用法。建议不用。3.8逗号运算符(1)逗号运算符用于将多个表达式连在一起,并将各表达式从左到右的顺序依次求值,但只有其最右端的表达式的结果,作为整个逗号表达式的结果。(2)逗号表达式的一般格式为:表达式1,表达式2,表达式n如:d=(a=1,b=a+2,c=b+3);(a=1,b=a+2,c=b+3)=5;/C不支持3.9求值次序与副作用不同的编译器求值顺序不
11、同3.9求值次序与副作用不同的编译器求值顺序不同求值顺序使交换律失去作用求值顺序使括号失去作用消除副作用尽可能用简单语句,交复杂语句拆为多句。变量IPO加工厂原料存放-变量进料-Input生产加工-Process出料-Output#include#include void main()void main()int grade;int grade;cout please input a number:n;cout grade;cin grade;if(grade100|grade100|grade0)cout cout=90)else if(grade=90)cout A.n;cout=80)else if(grade=80)cout B.n;cout=70)else if(grade=70)cout C.n;cout=60)else if(grade=60)cout D.n;cout D.n;else else cout E.n;cout E.n;收获盘点算术表达式算术表达式逻辑表达式逻辑表达式关系表达式关系表达式条件表达式条件表达式逗号表达式逗号表达式If If语句语句变量变量IPOIPO课外实践P51 练习作业:3.1、3.2、3.6实验:3.3、3.6选做:3.5