1 算术运算符
+-* / %(加减乘除,取余),双目运算符,其中加减优先级较低为4,后三个优先级为3(优先级决定表达式中的运算顺序)
由算术运算符和括号连起来的符合java语法规则的式子称作算术表达式(同理其他运算符)
要注意:
-26%3的值为-2
26%-3的值为2
两个整数相除,小数部分直接舍去
8/3=2
2 自增自减运算符
(++)(--),单目运算符,单目运算符的优先级是要比双目运算符的优先级要高的
a++是先用a的值进行计算,然后再加一;
++a是先自身加上1,再进行运算
eg: int a=4;
y=a++;//y=4,a=5
x=++a;//x=5,a=5
同理(--)也是一样
int f=2;
int m=2;
int z=f*m++;//z=2*2=4,m=3;
int x=(f*m++)+m;//x=2*3+4=10; m=4
int y=(f*++m)+m;//y=2*5+5=15;m=5;
3 关系运算符
>
<
>=
<=
!=
==
前四个优先级为6,后两个优先级为7
都是双目运算符
4 逻辑运算符
与&&
或||
非!
其中非的优先级最高为2
与和或优先级分别为11,12
都是双目运算符
5 赋值运算符
(=)优先级为14,双目运算符
6 instanceof 运算符
java特有的双目运算符
对象 instanceof 类名
当对象是类或子类创建的对象时,结果为true,否则是false
7 位运算符
按位非~(单目运算符,其他都是双目运算符)
与&
或|
异或^
c=~a;a的位0变为1,1变为0
c=a&b;a,b对应位只有都是1,c对应位才是1,其他为0
c=a|b;a,b对应位只有都是0,c对应位才是0,其他为1
c=a^b;a,b对应位若相同,c对应位为0,否则为1
位运算符也可以作为逻辑运算符,但两边都要算完
eg: int x=1; boolean c=(y=1)==0 && (x=6)==6
这时候左边已经是false了,所以c一定是false后面的不用算了
这时候输出x的值为1;
int x=1; boolean c=(y=1)==0 & (x=6)==6
这时候是位运算符,两边都要算完,输出x的值为6;
8 条件表达式
作为if语句的简写
y=(x>0)?1:-1
这代表x>0时y=1;x<=0时,y=-1
9 break和continue
在循环体内,如果在执行一次循环时,执行了break语句,那么整个循环体就要结束,不管循环次数有没有结束,整个循环体都要结束。
而如果在执行一次循环时,执行了continue,那么只要结束本次循环,continue之后的语句也不能执行。
10 例题求100以内质数
方法一:质数除了1和本身外没有其他约数。所以说约数和=约数+1;
方法二:质数 i 在[2,i-1]这个范围内没有约数