-
算数运算符
- + - * / %(求模/取余)
- /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
- 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
-
赋值运算符
- = 赋值 a=10,将10赋值给变量a
- += 加后赋值 a+=b(a=a+b),将a+b的值给a
- -= 减后赋值 a-=b(a=a-b),将a-b的值给a
- *= 乘后赋值 a*=b,将a×b的值给a
- /= 除后赋值 a/=b,将a÷b的商给a
- %= 取余后赋值 a%=b,将a÷b的余数给a
- ==注意==
- 扩展的赋值运算符隐含了强制类型转换。
- 扩展的赋值运算符隐含了强制类型转换。
-
自增自减运算符
- ++ 自增
- -- 自减
- ==注意事项==
- ++和-- 既可以放在变量的后边,也可以放在变量的前边。
- 单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
- 参与操作的时候,如果放在变量的后边,先拿变量参与运算操作,后拿变量做++或者--。
- 参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与运算操作。
-
关系运算符
- == a==b,判断a和b的值是否相等,成立为true,不成立为false
- != a!=b,判断a和b的值是否不相等,成立为true,不成立为false
- > a>b,判断a是否大于b,成立为true,不成立为false
- >= a>=b,判断a是否大于等于b,成立为true,不成立为false
- < a<b,判断a是否小于b,成立为true,不成立为false
- <= a<=b,判断a是否小于等于b,成立为true,不成立为false
- ==注意事项==
- 关系运算符的结果都是boolean类型,要么是true,要么是false。
- 千万不要把“==”误写成“=”,"=="是判断是否相等的关系,"="是赋值。
-
逻辑运算符
- & 逻辑与 a&b,a和b都是true,结果为true,否则为false
- | 逻辑或 a|b,a和b都是false,结果为false,否则为true
- ^ 逻辑异或 a^b,a和b结果不同为true,相同为false
public class LuoJi {
public static void main(String[] args) {
int age = 21 ;
double height = 1.8;
System.out.println(age>18 & height>=1.8); //逻辑与&,当两边的结果都为true时最终结果为true,否则为false
System.out.println(age<18 & height>=1.8); //短路与&&,作用与&相同,当判断最左边的结果为false时,则不再进行后续的代码判断,提高代码效率
System.out.println(age>18 | height>1.8); //逻辑或,当两边的结果只要有一个为true则结果为true,否则为false
System.out.println(age<18 | height>1.8); //短路或||,作用与|相同,当判断最左边的结果为true时,则不再进行后续的代码判断,提高代码效率
System.out.println(age<18 ^ height>1.8); //逻辑异或,当两边的结果值相同时为true,不同时为false
System.out.println(age<18 ^ height<=1.8);
System.out.println(!(age>18 ^ height>=1.8)); //逻辑非,逻辑取反,最终结果的相反结果,既最终结果为true,则取反为false
}
}
-
短路逻辑运算符
- && 短路与 作用和&相同,但是有短路效果
- || 短路或 作用和|相同,但是有短路效果
- 短路效果
- 在逻辑 (与&&) 运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑 (或||) 运算中,一旦发现值为true,右边的表达式将不再参与运算。
-
三元运算符(三目运算)
- 语法:布尔表达?值1:值2;
- 布尔表达式
- 结果为true,则运算结果取值1
- 结果为false,则运算结果取值2
public class HeShang { public static void main(String[] args) { int a = 165; int b = 170; int c = 185; int max = a >=b ? a : b; int maxend = max >= c ?max:c; System.out.println("三个和尚中的最高身高为"+maxend); } }
- 注意:三元运算的结果接收时要根据?之后设置的值的类型进行变量创建。