第4章C++表达式与基本程序讲义控制结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

取余运算符%用于取整数除法的余数,是对
除法运算符的一个必要的补充。 如:
5%2
得到的结果为 1
8%5
得到的结果为 3
在/和%运算中,注意除数不能为零,否则将
产生溢出错误。
在做+和*运算特别是*运算时,很容易出现 运算结果产生溢出的情况,要注意将数据定义为足 够长度的类型。
当赋值运算符的两边出现相同的变量时,C++ 还提供了一个简洁的表达方式:x=。其中的x可 为 +、-、*、/、%等。
x = ++ n; 先将n的值加1得到6,再将n的值赋给x,则x 和n的值都为6。
4.1.2 关系运算
C++的关系运算符都是二元的,有>、<、>= 、<=、==、!=,分别表示“大于”、“小于”、 “大于等于”、“小于等于”、“等于”和“不等 于”。
由关系运算符连接起来的表达式就 称为关系表达式。
第4章C++表达式与基本程序控制结构
精品jing
4.1 运算符与表达式
运算符是指用来表示在数据上执行 某些特定操作的符号。
参与运算的数据称为操作数。 根据参与运算的操作数的个数是一 个、两个或三个,运算符分为一元运算 符、二元运算符和三元运算符。
表达式是指用运算符和圆括号把常量、变量 和函数等运算成分连接起来的有意义的式子。
4.1.1 算术表达式
用算术运算符(+、-、*、/)连接起 来的表达式就称为算术表达式。
用除法运算符/进行整数除法与进行浮点
数除法是不同的。用于整数时,/表示整除,如 果有余数,余数部分就被省略了。如:
5 / 2 得到的结果为 2(int型) 8 / 5 得到的结果为 1(int型) 而用于浮点数时: 5.0 / 2.0 得到的结果为 2.5(float型) 8.0 / 5.0 得到的结果为 1.6(float型)
例如,表达式 (x>10) && (x<20)
例如,当 x=14 时,上述表达式为1; 当 x=8 时,上述表达式为0。
|| 运算符左右两边的表达式只要有一个为 真(非0),整个表达式的值就为1。只有当其 左右两边的表达式都为0时,整个表达式的值 才为0。
例如: (x<10) || (x>20)
当x=36时,此表达式的值为1; x=8时,此表 达式的值也为1; x=16 时,此表达式的值为0。
int m, n;
++m;
--n; 又可用在变量后,作为后缀运算符。例如:
m++;
n--;
前缀增(减)1运算符在使用变量的值之 前就使变量值加1或减1,
后缀增(减)1运算符在使用变量的值之 后才使变量值加1或减1。
例如,若n的值为5,那么 x = n ++;
先将n的值5赋给x,即x的值为5,再将 n的值 加1,则n为6。而
假定e1和e2是表达式,那么
e1 = (e1) x (e2) 就等价于
e1 x = e2
例如,表达式a=a+9可以用+=写成如下形式:
a+=9 注意围绕 e2 的括号。例如,表达式y-=x+1 实际上是y=y-(x+1)
+ + 和 - - 运算符 增1运算符和减1运算符分别对其操作数进行 加1和减1操作,它们既可以用在变量前,作为 前缀运算符,例如:
例4.1执行后,若输入的y的值是小于45.3的,则得 到的结果是1,否则得到0。
4.1.3 逻辑运算
C++ 的 逻 辑 运 算 符 有 三 个 : 一 元 运 算 符 ! ( 逻 辑非)和二元运算符&&(逻辑与)、||(逻辑或)。
用逻辑运算符连接起来的表达式称为 逻辑表达式。
&&运算符用在两个表达式之间,若其左右 两边的表达式皆为真(非0),则整个表达式 的值为1,否则为0。
同样,形如 e1 || e2 的表达式,如果已经求得 e1的值为1,则整个表达式的值一定为1,C++就不再 对e2求值。
4.1.4 条件运算符
条件运算符?:是C++中唯一的一个三元运算符。
条件运算符的表达式来自百度文库有如下形式: e1 ? e2 : e3
其中e1、e2、e3皆为表达式。
条件运算执行的操作是:先计算表达式 e1的值,如果为非0,则计算表达式 e2 的 值并把它作为整个表达式的值; 而如果e1 的值为0,则计算表达式e3的值,并用它 作为整个表达式的值。
! 运算符用在表达式的前面,表示取表达 式的非。若表达式值为0,取非以后为1; 若表 达式值为非0,取非以后为0。
例如: !(3>2)
的值为0,因为(3>2)的值为1。
C++在计算逻辑表达式的值时,若从左到右计 算到某处就已经能够确定表达式的值,则不再继续 后面部分的求值。
例如,形如 e1 && e2 的表达式,在已求得表 达式e1的值为0的情况下,已经能够确定整个逻辑表 达式的值为0,C++就不再对e2求值。
单个常量、变量和函数也都可以看成是一个 表达式。
表达式经过计算后都会得到一个确定的 值,这个值就是表达式的值。
每个表达式都具有唯一确定的值 和唯一确定的类型。
例如:98.56 , (98.56) , x , 876-78 , 3*(2.5+5) ,sqrt(9)都是合法的表达式。
它们的值分别为98.56、98.56、x的值、 794、22.5、3。
例如,表达式 ( x > y ) ? 10 : 20 如果x的值大于y的值,则表达式的值为10,否则表 达式的值为20。 又如,在语句 max = (a>b) ? a : b; 中,max将赋值 为a、b中较大的数。
其中sqrt()是一个计算平方根的标准函 数,包含在库math.h中。
C++中有一种表达式称为逗号表达式,指 的是用逗号分隔开的表达式序列。 比如:
x=3,y=8,x+y
逗号表达式的求值次序是从左到右依次计 算各表达式的值,以最后一个表达式的值和类 型作为整个逗号表达式的值和类型。比如上面 这个逗号表达式的值为11。
关系表达式的值只有两个:1和0。 1表示逻辑真,即该关系表达式成立; 0表示逻辑假,即该关系表达式不成立。
例如,表达式 6 >= 4 的值为1, 而表达式 67 != 67 的值为0。
例4.1 关于关系运算的一个例子 # include <iostream.h> void main() {
double x=45.3, y; cout<<"please enter y : "; cin>>y; cout<<(x<y)<<endl; }
相关文档
最新文档