【Java 教程(原创)】010.运算符与表达式(上)
本帖最后由 零度非安全 于 2017-1-19 14:40 编辑【Java 教程(原创)】索引帖
Java 提供了丰富的运算符,如 算术运算符、关系运算符、逻辑运算符 和 位运算符 等。
static/image/hrline/4.gif
算术运算符与算术表达式
1> 加、减运算符
加、减运算符 +、- 是二目运算符,即连接两个操作元的运算符。加、减运算符的结合方式是从左到右。例如 2 + 3 - 8,先计算 2 + 3,然后再将得到的结果减 8。加、减运算的操作元是整型或浮点型数据,加、减运算符的优先级是 4 级。
2> 乘、除和求余运算符
乘、除操作和求余运算符 *、/、% 是二目运算符,结合方向是从左到右。例如 2 * 3 / 8,先计算 2 * 3,然后再将得到的结果除以 8。乘、除和求余运算符的操作元是整型或浮点型数据,乘、除和求余运算符的优先级是 3 级。
用算术符号和括号连接起来的符合 Java 语法规则的式子称为算术表达式,如 x + 2 * y - 30 + 3 * (y + 5)。
自增、自减运算符
自增、自减运算符 ++、-- 是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量,作用是使变量的值增 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。
算术混合运算的精度
精度从“低”到“高”的排列顺序是 byte、short、char、int、long、float、double。
Java 在计算算术表达式的值时,使用下列计算精度规则:
如果表达式中有双精度浮点数(double 型数据),则按双精度进行运算。例如,表达式 5.0/2 + 10 的结果是 12.5 是 double 型数据。
如果表达式中最高精度是单精度浮点数(float 型数据),则按单精度进行运算。例如,表达式 5.0F/2 + 10 的结果 12.5 是 float 型数据。
如果表达式中最高精度是 long 型整数,则按 long 精度进行计算。例如,表达式 12L + 100 + 'a' 的结果 209 是 long 型数据。
如果表达式中的最高精度低于 int 型整数,则按 int 精度进行运算。例如,表达式 (byte)10 + 'a' 和 5/2 的结果分别为 107 和 2,都是 int 型数据。
关系运算符与关系表达式
关系运算符是二目运算符,用来比较两个值得关系,关系运算符的结果是 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等。
运 算 符 优 先 级 用 法 含义 组 合 方 向
> 6 op1>op2 大于 从左到右
< 6 op1<op2 小于 从左到右
>= 6 op1 >= op2 大于等于 从左到右
<= 6 op1 <= op2 小于等于 从左到右
== 7 op1 == op2 等于 从左到右
!= 7 op1 ! = op2 不等于 从左到右
逻辑运算符与逻辑表达式
逻辑运算符包括 &&、||、!。其中,&&、|| 为二目运算符,实现逻辑与、逻辑或运算;! 为单目运算符,实现逻辑非运算。逻辑运算符的操作元必须是 boolean 型数据,逻辑运算符可以用来连接关系表达式。下表给出了逻辑运算符的用法和含义。
运算符 优先级 用 法 含 义 结合方向
&& 11 op1 && op2 逻辑与 从左到右
| | 12 op1| |op2 逻辑或 从左到右
! 2 ! op 逻辑非 从右到左
结果为 boolean 型的变量或表达式可以通过逻辑运算形成逻辑表达式。下表给出了逻辑运算符的用法和含义。
op1 op2 op1 && op2 op1 || op2 ! op1
true true true true false
true false false true false
false true false true true
false false false false true
例如,2 > 8 && 9 > 2的结果为 false,2 > 8 || 9 > 2的结果为 true。由于关系运算符的级别高于 &&、|| 的级别,2 > 8 && 9 > 2 相当于 (2 > 8) && (9 > 2)。
逻辑运算符 && 和 || 也称为短路逻辑运算符,这是因为当 op1 的值是 false 时,&& 运算符在进行运算时不再去计算 op2 的值,直接得出 op1 && op2 的结果是 false;当 op1 的值是 true 时,|| 运算符在进行运算时不再去计算 op2 的值,直接得出 op1 || op2 的结果是 true。
赋值运算符与赋值表达式
赋值运算符“=”是二目运算符,左面的操作元必须是变量,不能是常量或表达式。设 x 是一个整型变量,y 是一个 boolean 型变量,x = 20 和 y = true 都是正确的赋值表达式,赋值运算符的优先级较低,是 14 级,结合方向为从右到左。
赋值表达式的值就是“=”左边变量的值,假如 a、b 是两个 int 型变量,那么表达式 b = 12 和 a = b = 100 的值分别是12 和 100。
注意,不要将赋值运算符“=”与等号关系运算符“==”混淆。例如,12 = 12 是非法的表达式,而表达式 12 == 12 的值是 true。
更多内容详见下一讲。
【特别注意】贴子中的栗子希望鱼油们能自觉的手动敲上去,不要单纯的复制粘贴保存,然后编译运行。
点我前往上一讲
点我前往下一讲
{:10_265:} 464318257 发表于 2017-1-23 12:06
共同学习,共同进步{:5_110:} 每次都可以解决之前的一些知识误区,赞 010 打卡 谢谢讲解
页:
[1]