c第三章表达式和语句.ppt_第1页
c第三章表达式和语句.ppt_第2页
c第三章表达式和语句.ppt_第3页
c第三章表达式和语句.ppt_第4页
c第三章表达式和语句.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 C+简单程序设计,3.1 表达式 3.2 算术运算符 3.3 算术类型转换 3.4 增量与减量 3.5 关系与逻辑表达式 3.6 if语句 3.7 条件运算符 3.8 逗号表达式 3.9 求值次序,3.1表达式表达式概述,概念:表达式、求值次序、结合性 C+语言的运算符按其在表达式中与运算对象的关系(连接运算对象的个数)可分为: l单目运算符(一元运算符,只需一个操作数) l双目运算符(二元运算符,需两个操作数) l三目运算符(三元运算符,需三个操作数),3.1表达式左值和右值,左值=右值 如:a=3; b=a;,3.1表达式优先级和结合性,结合性:一般都是从左到右结合,但单目运算符、

2、条件运算符、赋值缩写运算符的结合性从右到左。 优先级:P35 表3-1,3.1表达式语句和块,语句以分号结束; 空语句:; 块:即复合语句,是指在一对花括号里的语句序列。,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 算术运算符溢出,溢出:一个变量被赋予一个超出其数据类型表示范围的数值。它一般不会发生编译错误,但会导致结果发生偏差。 延伸

3、:计算机的数据采用补码的形式存放。 如:int weight=42896;结果变量值为-22640 1010011110010000 转二进制 1101100001101111 取反 1101100001110000 +1 -22640 简单方法:-(65536-42896),3.3 算术类型转换,转换总朝表达数据能力更强的方向,并且转换总是逐个运算符进行的。(短长),3.3 算术类型转换,隐式转换:即自动转换,由编译器自动完成的类型转换。如1+2.0 显式转换:即强制转换,由程序员显式指出的类型转换,转换格式如下: 类型名(表达式) (类型名)表达式 如:long(12)、(long )12

4、,3.4 增量和减量,自增+:自动加1 自减-:自动减1 前缀:变量值加(减)1,然后新值赋给变量。 如:b=+a; -a; 后缀:变量值加(减)1,但修改变量值 如:b=a+;a-; 综合:c=a+b; c=a+b; c=a+b;,3.5 关系运算符关系运算符,(1)关系运算符用于两个值进行比较,运算结果为true(真)或false(假),分别用值非0(true)或0(false)表示。 (2)关系运算符都是双目运算符,其结合性是从左到右,、=运算符的优先级相同,= =和!=运算符的优先级相同,前者运算的优先级高于后者。 (3)关系运算符的优先级低于算术运算符。,3.5 关系运算符逻辑运算符

5、,C+中的逻辑运算符为: if (ch=b) couta; if (ch=b); couta;,3.6 if语句ifelse语句,语法格式 如果 (我考试过了) 那么 我请大家吃饭 否则 你帮我出报名费,呵呵 if (ch=b) couta; else coutch; if (ch=b) couta; else coutch;,3.6 if语句解决二义性,就近未匹配原则:else连接到上面第一个没有配对且为可见的if上。 p46,3.7条件运算符,(1)条件运算符“?:”是C+中惟一的三目运算符,其形式为: 表达式1 ? 表达式2 : 表达式3 (2)条件运算符的结合性是自右向左。 (3)条件

6、运算符的优先级别高于赋值运算符,低于关系运算符和算术运算符。 x=ab?a:b; if(ab) x=a; else 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求值次序与副作用,不同的编译器求值顺序不同,3.9求值次序与副作用,不同的编译器求值顺序不同 求值顺序使交换律失去作用 求值顺序使括号失去作用 消除副作用 尽可能用简单语句,交复杂语句拆为多句。,变量IPO,加工厂 原料存放-变量 进料-Input 生产加工-Process 出料-Output,#include void main() int grade; cout grade; if(grade100|grade=90) cout =80) cout =70) cout =60) cout D.n;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论