一个表达式 (expression) 由操作数 (operand) 与运算符 (operator) 界限符(delimiter)所组成

上图为表达式常见的形式,多数运算符都需要两个操作数,另有一个需要三个操作数的运算符。
单一操作数就构成一个表达式,操作数可以是变量 (variable) 、字面常数 (literal) 或方法调用 (method invocation) ,例如
// 以变量当操作数 a; // 以字面常数当操作数 3; // 调用 println() 当操作数 System.out.println();
表达式,顾名思义,其为运算出一个结果的式子,因此单一操作数的表达式所得到的结果就是操作数的值,如果是方法调用,就是方法的返回值 (return value) !
单一操作数也可以结合单目运算符,单目运算符有
正负如一般数学表示正负值一样,同样的,负负会得正
int a = -3; int b = +a; // b 会等于 -3 int c = -a; // c 会等于 3
自增、自减则是会将整数变量自增 1 或自减 1 ,有前后之别
int a = 3; int b = ++a; // b 会等于 4 int c = a++; // c 会等于 4 int d = --a; // b 会等于 4 int e = a--; // e 会等于 4
自增、自减表达式,计算完该变量 a 就会自增或自减。
逻辑补数运算符会把 true 变成 false , false 变成 true
boolean a = true; boolean b = !a; // b 会等于 false boolean c = !b; // c 会等于 true
一般运算符都须结合两个操作数,例如算术运算符 (arithmetic operator) ,可用在整数 (integer) 及浮点数 (floating-point number) ,计算结果也为整数或浮点数
例如
int a = 2; int b = a + 2; // b 会等于 4 int c = b - 2; // c 会等于 2 int d = c * 2; // d 会等于 4 int e = d / 2; // e 会等于 2 int f = e % 2; // f 会等于 0
相等性及关系运算符 (equality and relational operator) ,可用于整数及浮点数或布尔值 (Boolean value) ,计算结果不是 true就是 false
例如
int a = 11; int b = 22; boolean c = a >= b; // c 会等于 false boolean d = a <= b; // d 会等于 true boolean e = c == d; // e 会等于 false boolean f = a != b; // f 会等于 true
我们运用的等号,其实属于指派运算符 (assignment operator) ,所谓的指派是把等号右边的值给左边的变量,如果右边是对象 (object) ,变量就会得到对象的引用 (reference)
例如
int a = 2; a += 2; // a 会等于 4 a -= 2; // a 会等于 2 a *= 2; // a 会等于 4 a /= 2; // a 会等于 2 a %= 2; // a 会等于 0
有没有看的眼花撩乱?居然有 f = a != b 之类的式子出来,这是因为运算符有计算的优先次序 (precedence) ,由于 != 的优先顺序在 = 之前,所以 a != b 会先被计算,结果才会指派到 f 之中。如果不是很清楚各个运算符的优先次序,保险一点的做法可以用小括弧,把要先计算的表达式用小括弧围起来,例如
f = (a != b); //等于 f = a != b
这是因为小括弧有最高的优先计算次序。
加上分号,表达式就是程序 (program) 中独立的语句 (statement) 。如果说 Java 程序的执行单位为类别 (class) ,每一次执行都必须启动指定类别的 main() 方法 (method) ,语句则是类别的执行单位,因为 JVM 调用 main() 之后,便开始从 main()中由前而后,一个语句接着一个语句来执行。
语句也有好几种,最简单的语句就是单一个分号
; // 什么事也不做的语句
其他很多都是连带表达式单独一行的语句,然而许多控制结构 (control structure) 是属于多行的复合语句 (compound statement) ,我们先来看看控制结构中的选择吧!
中英文术语对照
表达式 expression
操作数 operand
运算符 operator
变量 variable
字面常数 literal
方法调用 method invocation
返回值 return value
算术运算符 arithmetic operator
整数 integer
浮点数 floating-point number
相等性及关系运算符 equality and relational operator
布尔值 Boolean value
指派运算符 assignment operator
对象 object
引用 reference
计算的优先次序 precedence
程序 program
语句 statement
类别 class
方法 method
控制结构 control structure
复合语句 compound statement
重点整理
1、表达式由操作数与运算符所组成,单一操作数就可构成表达式,其余单目运算符结合单一操作数,或是两个操作数结合一个运算符。
2、运算符依种类分有单目运算符、算术运算符、相等性及关系运算符、指派运算符等。
3、算术运算符用于整数及浮点数类型,计算结果也是整数或浮点数。
4、相等性及关系运算符用于整数及浮点数类型,计算结果为 true 或 false 。
5、指派运算符为单一个等号,可以跟算数运算符结合为复合运算符。
6、小括弧有最高的计算优先次序。
7、语句为程序执行独立的单位,最简单的语句为单一个分号。
问题与讨论
1、算术运算符可以用在其他基本数据类型或对象吗?字符可不可以相加?字符串又可不可以相加呢?
2、为什么测试相等的运算符为连续两个等号?
3、为什么计算的优先次序很重要?
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
