目录
6. 条件运算符也叫三目运算符(布尔表达式1 ? 表达式2 : 表达式3
Java中运算符的分类:
算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符以及条件运算等。
1. 算数运算符
1.1 基本四则运算符(+ - * / %)
1. 取模求余数时,可以动笔算一算,这样的题不要出错。不要想当然的认为是 1-1-11,这是错的
2. 取模%运算符的操作数可以是整型,也可以是double型,但是没有意义,一般都是对整型取模。
3. 做除法或取模时,右操作数不能为0,否则程序出错。
1.2 增量运算符(+= -= *= /= %=)
1. 增量运算符可以自动进行强制类型转换
1.3 自增/自减运算符(++ --)
前置++:先++后使用;后置++:先使用后++
2. 关系运算符(== != < > <= >= )
在Java中,关系运算符得出的结果要么是 true 要么是 false ,只有这两种结果。
3. 逻辑运算符(&& || !)操作数必须是布尔表达式
表达式:运算符+操作数 布尔表达式:关系运算符+操作数
1. && || ! 的操作数都必须是布尔表达式(布尔表达式:表达式的值只能是true或false)
即两个操作数的值只能是true或false;没有0是假,非0 是真之说。
2. 遵循短路
&&:第一个表达式为假(false),就不会执行第二个表达式;
||:第一个表达式为真(true),就不会执行第二个表达式
3. & 和 | 如果操作数为布尔表达式,也表示逻辑运算。但与 && || 相比, & 和 | 不支持短路求值。
& 和 | 如果操作数不为布尔表达式,就是位运算符。
4. 位运算符(& | ^ ~)
按位异或 ^: 相同为 0, 相异为 1
按位取反 ~: 0转1, 1 转 0
5. 移位运算(<< >> >>> )
左移<<:(把球往左一推,左边的球掉了,右边再补个球)
右侧补0,左移相当于乘法,左移一次,乘个2
右移>>:(把球往右一推,右边的球掉了,左边再补个球)
左侧正数补0,负数补1;右移相当于除法,右移一次,除个2
左移相当于乘2,右移相当于除2(除-1以外),且这个规则无论是正数还是负数都适用
因为-1的补码全是1,右移时左侧会补符号位1,补码仍全是1,所以输出结果为-1,并没有除2。这是个例外。
无符号右移 >>>: 无论是正数还是负数,左侧都只补0
6. 条件运算符也叫三目运算符(布尔表达式1 ? 表达式2 : 表达式3
布尔表达式1 ? 表达式2 : 表达式3