算术运算符包括:
+,-,*,/,% ,++, –
基本的+,-,*,/用来做基本的加减乘除运算。
%取余运算符用来计算余数,如5%2=1(5除以2的余数位1)。
++,–为自加运算符和自减运算符。
自加和自减运算符分为两种,一种在变量前面,一种在变量后面。
在变量前面先做自加(自减),后赋值或输出,在变量后面,先赋值或者输出,后自加(自减)。如:
public class Test {
public static void main(String[] args) {
int a = 1;
System.out.println(a++);//先输出,后++
System.out.println(++a);//先加加,后输出
}
}
++在后面,先输入a的值,再对a进行++,即输出1,然后对a加上1,此时a=2。最后++再前面,先对a进行++,此时a=3,然后再输出a,输出结果如下:
注意
public class Test {
public static void main(String[] args) {
int i = 1;
i=i++;
System.out.println(i);
}
}
最后的输出结果为1。为什么结果为1可以参考我的下一篇博客:
i = i++问题分析
关系运算符包括:
>, >=, < ,<=, ==, !=
注意,=号不是关系运算符,是赋值运算符,==是关系运算符。
所有关系运算符得到的结果都是boolean类型。
如:
public class Test {
public static void main(String[] args) {
boolean i = 3==2;
System.out.println(i);
}
}
逻辑运算符包括:
& ,|, ! ,&& ,||
逻辑运算符的两边都是布尔类型,并且返回结果也是布尔类型
!是取反操作,&,|称为逻辑或与,&&,||称为短路或与。
!,取反,顾名思义,就是返回相反的 值,如:
public class Test {
public static void main(String[] args) {
boolean i = !(3==2);
System.out.println(i);
}
}
返回结果为false取反,即true:
&和&&都是与运算,&被称为逻辑与,&&被称为短路与。
不管是逻辑与还是短路与,只有两边的布尔表达式同时为true,那么结果才是true;否则为false。
使用&&的时候,如果左边的布尔表达式为false,则不会在运算右边的布尔表达式,从而提高了效率;使用&的时候,即使左边的布尔表达式为false,还是会运算右边的布尔表达式,如:
public class Test {
public static void main(String[] args) {
System.out.println(3<2 & 2>1);//逻辑与,虽然3<2已经为false,但是还会继续判断2>1的结果。
System.out.println(3<2 && 2>1);//短路与,3<2已经为false,不会再继续往下判断,直接返回false。
}
}
返回结果为:
|和||,逻辑或和短路或。
只要两边的布尔表达式有一边为true,结果就为true;如果两边同时都为false,才为false
使用||的时候,如果左边的布尔表达式为true,则不会在运算右边的布尔表达式,从而提高了效率;使用|的时候,即使左边的布尔表达式为true,还是会运算右边的布尔表达式。如:
public class Test {
public static void main(String[] args) {
System.out.println(3>2 | 2<1);//逻辑或,虽然3>2已经为true,还是会继续判断2<1的结果。
System.out.println(3>2 || 2<1);//短路或,3>2已经为true,不会继续向下判断,直接返回true
}
}
赋值运算符包括:
=, +=, -= ,*=, /= ,%=
=(赋值),+=(加等于),-+(减等于), *=(乘等于), /=(除等于) , %=(模等于)
如:
public class Test {
public static void main(String[] args) {
int a = 10;//对a进行赋值,将10赋值给a。
a += 1;//将a+1赋值给a,此时a=11。
a -= 1;//将a-1赋值给a,此时a=10。
a *= 1;//将a*1赋值给a,此时a=10。
a /= 1;//将a/1赋值给a,此时a=10。
a %= 1;//将a%1赋值给a,此时a=0。
System.out.println(a);
}
}
输出结果为:
条件运算符又称为三目运算符:
格式:布尔表达式 ? 值1 : 值2;
前面的布尔表达式的值如果为true,则返回值1,布尔表达式的值如果为false,则返回值2。
如:
public class Test {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a ? 1:2);//a为true,返回值1。
System.out.println(b ? 1:2);//b为false,返回值2。
}
}