2.6 表达式
表达式由运算符、括号、数值对象或变量等几个元素构成。一个数值对象是最简单的表达
式,一个表达式可以被看做是一个数学函数。带有运算符的表达式通过计算将返回一个数值。
例如:
1 + 1
3.1415926
i + 1
x > y100 >> 2
j * 3
当表达式中有两个或多个运算符时,称表达式为复杂表达式,运算符执行的先后顺序由它
们的优先级和结合性决定。例如:
(X+Y)*Za*x+b*y+z
一个表达式的值的数据类型由运算符的种类和操作数的数据类型决定。
根据运算符的不同,带运算符的表达式可以分成算术表达式、关系表达式、逻辑表达式、
条件表达式和赋值表达式等几类。
2.6.1 算术表达式
算术表达式的一般形式如下:
表达式算术运算符表达式
算术表达式由算术运算符把表达式连接而成,其值的计算很简单,其值的数据类型按下
述规定确定:若所有运算符数量类型相同,则表达式运算结果的数据类型和操作数的数据类
型相同;若操作数的数据类型不同,就需要转换,表达式运算结果的数据类型取最高的数据
类型。
2.6.2 关系表达式
关系表达式的一般形式如下:
表达式关系运算符表达式
关系表达式一般只出现在三目运算符、if语句和循环语句的判断条件中。关系表达式的运
算结果都是逻辑型,只能取true或false。数值0表示false,非0代表true。
2.6.3 条件表达式
条件表达式的一般形式如下:
关系表达式?表达式:表达式
条件表达式的值和数据类型取决于?号前表达式的真假,若为真,则整个表达式的运算结
果和数据类型和冒号前的操作数相同;若为假,则整个表达式的值和数据类型和冒号后的操作
2.6.4 赋值表达式
赋值表达式的一般形式如下:
表达式赋值运算符表达式
赋值运算符的值和数据类型与第一个操作数对象值完毕后的值和数据类型相同。
由于赋值运算符的结合性是从右至左,因此可以出现连续赋值的表达式。
2.6.5 逻辑表达式
逻辑表达式的一般形式如下:
表达式逻辑运算符表达式
逻辑表达式用逻辑运算符将关系表达式连接起来。逻辑表达式的值也是逻辑型,只能取真
值true或假值false。
其中的表达式又可以是逻辑表达式,从而组成了嵌套的情形。例如,对于(a||b)&&c,
根据逻辑运算符的左结合性,也可写为a||b&&c 。逻辑表达式的值是式中各种逻辑运算的最后
值,以1和0分别代表“真”和“假”。
1)逻辑运算符两侧的操作数,除了可以是0和非0的整数外,也可以是其他任何类型的数
据,如实型、字符型等。
2)在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式,
也就是说,并不是所有的表达式都被求解。例如,对于逻辑与运算,如果第一个操作数被判定
为“假”,系统将不再判定或求解第二个操作数;对于逻辑或运算,如果第一个操作数被判定
为“真”,系统将不再判定或求解第二个操作数。