1.算术运算符
Java算数运算符除通常的加(+)、减(-)、乘(*)、除(/)之外,
还包括取模运算(%)和自增(++)及自减(–)运算。
- 使用%运算符
取模运算(%)意为取余数,可适用于整数、char类型以及浮点数。
float f = 3.14f;
float p = 2.02f;
char x = 'a';
char y = 'b';
System.out.println(f%p);//1.1200001
System.out.println(y%x);//1
- 使用"++“和”–"运算符
Java的自增运算符(++)和自减运算符(–)继承自C++,
可以使变量的值加1或减1,但其写在变量前和变量后有不同的效果:
(1)如果写在变量前表示在使用这个变量之前加1或减1
(2)如果写在变量之后表示这个变量使用完之后再加1或减1
int a = 10, b = 20;
int c1 = a++; // 先将a的值赋给c1,然后a再自加
int c2 = ++b; // 先将b的值自加,然后再赋值给c2
2.关系运算符
关系运算符用于判断数据之间的大小关系。
包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、
不等于(!=)六个运算符。
关系运算的结果为boolean类型,如果关系成立为true,否则为false。
3.逻辑运算符
逻辑运算建立在关系运算的基础之上,
逻辑运算符包括:与(&&)、或(||)和非(!)。
参与逻辑运算的变量或表达式都是boolean类型,运算结果也是boolean类型。
逻辑运算规则如下表所示:
关于“短路逻辑”
Java逻辑运算遵循“短路逻辑”的原则:
(1)对于“&&”,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的结果一定是false;
(2)对于“||”,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true。
public static void main(String[] args) {
//if(isTrue() | isFalse()) {} //输出两次It ran!,说明“|”运算符不管怎样条件都运行
//if(isTrue() || isFalse()) {} //输出一次It ran!,说明“||”运算符只要有一个判断为true则不进行后续判断
//if(isFalse() & isTrue()) {} //输出两次It ran!,说明“&”运算符不管怎样条件都运行
if(isFalse() && isTrue()) {} //输出一次It ran!,说明“&&”运算符只要有一个判断为false则不进行后续判断
}
public static boolean isTrue() {
System.out.println("It ran!");
return true;
}
public static boolean isFalse() {
System.out.println("It ran!");
return false;
}
4.赋值运算符
"=“称为赋值运算符,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:
赋值表达式本身也有值,其本身之值即为所赋之值。
在赋值运算符”="前加上其他运算符,即为扩展赋值运算符。
5.条件(三目)运算符
条件运算符又称“三目”运算符,其结构为:boolean表达式 ?表达式1 :表达式2
条件运算符的规则如下:
1.先计算boolean表达式;
2.如果boolean表达式的值为true,整个表达式的值为表达式1的值;
3.如果boolean表达式的值为false,整个表达式的值为表达式2的值。
条件(三目)运算符的嵌套
条件运算符可以嵌套使用,所谓嵌套是指在条件(三目)表达式:
“boolean表达式?表达式1:表达式2”中的表达式1或表达式2也是
条件(三目)表达式。
int a = -3;
String r = a > 0 ? "正数" :(a == 0 ? "0":"负数");
System.out.println(r); // 结果为负数
6.位运算符
Java中有六种位运算符:& 按位与,| 按位或,^ 按位异或,~取反,<<左移,>>右移
操作数只能为整型和字符型数据。
int t = 2 & 4;//0010 0100 输出0
int z = 2 ^ 4;//0010 0100 异或输出6
int m = 2 << 1;//10左移一位得100 输出4
int x = -4 >>> 1;//无符号右移一位,缺位补0
int y = -4 >> 1;//带符号右移一位,缺位补符号位