运算符
运算符的类型
算数运算符 关系运算符(比较哦啊运算符) 三元运算符
一、算数运算符
运算符 计算 范例 结果 + 正号 +7 7 - 负号 b=11; -b -11 + 加法 9+9 18 - 减法 10-8 2 * 乘法 7*8 56 / 除法 9/9 1 % 取模(取余) 11%9 2 ++ 自增(前) a=2;b=b++;a a=3; b=2 ++ 自增(后) a=2;b=++a; a=3; b=3 – 自减(前) a=2;b=b–;a a=2; b=1 – 自减(后) a=2;b=–a; a=1; b=1 ++ 字符串相加 “hsp”+“edu” “hspedu”
注意点
a++
:先用后加 /
:除法 的结果取决于左右操作数,如果都是整数,结果就是整数,例如:8/5=1
注意:如果a
是负数 ,公式为a % b = a - (int)a / b * b ,得到的结果是近似值
案例说明
public class hello{ public static void main ( String [ ] args) { System . out. println ( 10 % 3 ) ; System . out. println ( - 10 % 3 ) ; System . out. println ( 10 % - 3 ) ; System . out. println ( - 10 % - 3 ) ; }
}
二、赋值运算符
注意是从右往左 运算,把某个值赋给变量
类型
=
: 赋值运算符,将右边的值赋给左边的变量 -=
: 减法赋值运算符,将右边的值从左边的变量中减去 /=
: 除法赋值运算符,将左边的变量除以右边的值
注意 :符合赋值运算符会进行类型转换
byte b = 2 ; b += 3 ; b++
如果写成 b=b+3
必然报错,int
类型不可以赋值给 byte
类型
三、关系运算符
关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false
运算符 计算 范例 结果 == 相等于 8 == 7 false != 不等于 8 != 7 true < 小于 8 < 7 false > 大于 8 > 7 true <= 小于等于 8 <= 7 false >= 大于等于 8 >= 7 true instanceof 检查是否是类的对象 “hsp” instanceof String true
四、逻辑运算符
类型
使用规则
a &
b: 逻辑与 :当 a 和 b 同时为 true,则结果为 true,否则为 false a |
b: 逻辑或 :当 a 和 b, 有一个为 true,则结果为 true,否则为 false !
a: 取反 :或者非运算。当 a 为 true,则结果为 false,当 a 为 false,则结果为 true
区别 ||
和 |
; &&
和 &
&&
短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高。 ||
短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高。
总结
&
和 &&
的代码示例
public class Hello { public static void main ( String [ ] args) { int age = 50 ; if ( age > 20 && age < 90 ) { System . out. println ( "ok100" ) ; } if ( age > 20 & age < 90 ) { System . out. println ( "ok200" ) ; } int a = 4 ; int b = 9 ; if ( a < 1 & ++ b < 50 ) { System . out. println ( "ok300" ) ; } System . out. println ( "a=" + a + " b=" + b) ; }
}
|
和 ||
的代码示例
public class LogicOperator02 { public static void main ( String [ ] args) { int age = 50 ; if ( age > 20 || age < 30 ) { System . out. println ( "ok100" ) ; } if ( age > 20 | age < 30 ) { System . out. println ( "ok200" ) ; } int a = 4 ; int b = 9 ; if ( a > 1 || ++ b > 4 ) { System . out. println ( "ok300" ) ; } System . out. println ( "a=" + a + " b=" + b) ; }
}
五、三元运算符
使用方法示例:int res=a > b ? a++ : --b;
解释:如果条件成立,执行结果 a,如果条件不成立,执行结果 b
代码示例
if ( a > b)
{ res = a;
}
else
{ res = b;
}
注意:数据类型转换问题
代码示例
public class TernaryOperatorDetail { public static void main ( String [ ] args) { int a = 3 ; int b = 8 ; int c = a > b ? ( int ) 1.1 : ( int ) 3.4 ; System . out. println ( "c = " + c) ; double d = a > b ? a : b + 3 ; System . out. println ( "d = " + d) ; }
}
运算符优先级示例
.
,
()
[]
: 数组、方法、成员访问 !
: 逻辑非(数据类型) +
-
: 加法、减法 <
<=
>
>=
: 比较运算、instanceof
&
: 按位与 &&
: 逻辑与 ? :
: 三元运算符 +=
-=
<<=
>>=
: 复合赋值运算符
说明