1. 算术运算符与算术表达式 (1) 加减运算符 +,-.例如 2+39,908.98-23等. 加减运算符是双目运算符,即连接两个操作元的运算符.加减运算符的结合方向是从左到右.例如: 2+3-8,先计算2+3,然后再将得到的结果减8.加减运算符的操作元是整型或浮点型数据,加减运算符的优先级是4级. (2) 乘,除和求余运算符 *,/,%.例如 2*39 908.98/23等. *,/,%运算符是双目运算符,即连接两个操作元的运算符.*,/,%运算符的结合方向是从左到右,例如 2*3/8,先计算2*3,然后再将得到的结果除以8.乘除运算符的操作元是整型或浮点型数据.*,/,%运算符的优先级是3级. 用算术符号和括号连接起来的符合java语法规则的式子,如x+2*y-30+3*(y+5).
2 自增,自减运算符 ++,-- 自增,自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后.操作元必 须是一个整型或浮点型变量.作用是使变量的值增1或减1,如 ++x,--x表示在使用x之前,先使x的值加 减 1 . x++,x— 表示在使用x之后,使x的值加 减 1. 粗略的看,++x和x++的作用相当于x=x+1.但++x和x++的不同之处在于,++x 是先执行x=x+1再使用x的值,而x++是先使用x的值再执行x=x+1.如果 x的原值是5,则 对于y=++x y的值为6. 对于y=x++ y的值为5,然后x的值变为6.
3 算术混合运算的精度 精度从”底”到”高”排列的顺序是 byte short int long float double Java将按运算符两边的操作元的最高精度保留结果的精度,例如 5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2. char型数据和整型数据运算结果的精度是int.例如 byte x=7; 那么 ‘B’+x; 的结果是int型,因此下列写法是不正确的, char ch=’B’+x; 应当写成 char ch=(char)(’B’+x);
4 关系运算符与关系表达式 关系运算符用来比较两个值的关系.关系运算符的运算结果是boolean 型,当运算符对应的关系成立时,运算结果是true,否则是false.例如,10<9的结果是false,5>1的结果是true,3!=5的结果是true,10>20-17的结果为true,因为算术运算符的级别高于关系运算符,10>20-17 相 当于10> 20-17 ,结果当然是true. 结果为数值型的变量或表达式可以通过关系运算符形成关系表达式.如,4>8,(x+y)>80.
5 逻辑运算符与逻辑表达式逻辑运算符包括 &&,||,!.其中&&,||为二目运算符,实现逻辑与,逻辑或 为单目运算符,实现逻辑非.逻辑运算符的操作元必须是boolean 型数据 ,逻辑运算符可以用来连接关系表达式.列如。2>8&&9>2 的结果为false,2>8||9>2 的结果为true.由于关系运算符的级别高于&&,||的级别,2>8&&8>2相当于 2>8 && 9>2 .逻辑运算符”&&”和”||”也称做短路逻辑运算符,这是因为当op1 的值是false 时,”&&”运算符在运算时不再去计算op2 的值,直接就得出op1&&op2 的结果是false.当op1 的值是true时,”||”运算符号在运算时不再去计算op2的值,直接就得出op1|op2的结果是true.比如,x的初值是1,那么经过下列逻辑比较运算后,((y=1)==0))&&((x=6)==6));x的值仍然是1.经过下列逻辑比较运算后,((y=1)==1))&&((x=6)==6));x的值将变为6.
6 赋值运算符与赋值表达式赋值运算符 =.赋值运算符是双目运算符,左面的操作元必须是变量,不能是常量或表达式.设x 是一个整型变量,y 是一个boolean 型变量,x=20 和y = true 都是正确的赋值表达式,赋值运算符的优先级较低,是14 级,结合方向右到左.赋值表达式的值就是”=“左面变量的值.注意不要将赋值运算符”=“与等号运算符”==“混淆.