java语言支持多种运算符
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?,:
- 扩展运算符:+=,-=,*=,/=
1. 算术运算符:+,-,*,/,%,++,–
package operator;
public class Demo01 {
public static void main(String[] args) {
// 算术运算符(+ - * / % ++ --)
int a = 10;
int b = 20;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a % b); // 10
System.out.println(a / b); // 输出0,因为a和b运算后为int,取整后结果为0
System.out.println(a / (double)b); // 0.5,因为java中自动类型转换的缘故,该运算结果为double,所以输出0.5
}
}
package operator;
public class Demo05 {
public static void main(String[] args) {
// ++ 和 --
int a = 5;
int b = a++; // 后++,先把a赋值给b,后自增
int c = ++a; // 前++,先自增,后赋值给c
System.out.println(b); // 5
System.out.println(c); // 7
System.out.println(a); // 7
}
}
2. 赋值运算符:=
package operator;
public class Demo04 {
public static void main(String[] args) {
// 赋值运算符(=)
int a = 10;
int b = a; // 把a的值赋给b
System.out.println(a); // 10
System.out.println(b); // 10
}
}
3. 关系运算符:>,<,>=,<=,==,!=,instanceof
package operator;
public class Demo03 {
public static void main(String[] args) {
// 关系运算符(> < == !=)
int a = 10;
int b = 20;
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a == b); // false
System.out.println(a != b); // true
}
}
4. 逻辑运算符:&&,||,!
package operator;
public class Demo06 {
public static void main(String[] args) {
// 逻辑运算符(&&,||,!)
// && 表达式中有一个为falsse,结果为false
// || 表达式中有一个为true,结果为true
// ! 取反
boolean a = true;
boolean b = false;
System.out.println(b && a); // true
System.out.println(b || a); // false
System.out.println(!a); // false
}
}
注意:
- 使用&&时,当前面的表达式结果为false时,后面的表达式将不再进行执行和比较。
- 使用||时,当前面的表达式结果为true时,后面的表达式将不再进行执行和比较。
5. 位运算符:&,|,^,~,>>,<<,>>>
&(按位与):两个为1,结果为1,否则为0。
|(按位或):两个为0,结果为0,否则为1。
^(按位异或):两个结果相同(都为0或者都为1),结果为0,否则为1。
~(按位取反):值为1,结果为0,值为0,结果为0。
左移(<<):左移乘以2。
右移(>>):右移除以2。
A = 0011 1100
B = 0000 1101
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ B = 1111 0010
6. 条件运算符:? :
package operator;
public class Demo08 {
public static void main(String[] args) {
// 三元运算符
// a ? b : c
// 如果a为true,执行b,否则执行c
int score = 61;
System.out.println(score > 60 ? "及格" : "不及格"); // 及格
}
}
7. 扩展运算符:+=,-=,*=,/=
package operator;
public class Demo07 {
public static void main(String[] args) {
// += 和 -=
int a = 10;
int b = 20;
a += b; // a = a + b
System.out.println(a); // 30
a -= b; // a = a - b
System.out.println(a); // 10
System.out.println("" + a + b); // 1020
System.out.println(a + b + ""); // 30
}
}