菜鸟学JAVA之——运算符及其优先级

mac2024-11-19  7

运算符

算术运算符(+、-、、/、 %、++、–、+=、-=、=、/=、%=)
int a =7/4; //向数轴的中间取整(直接砍掉小数部分,保留整数部分),得1 int b = -7/2; //得-3 //低类型转向高类型,直接转,高类型向低类型转(或者不同类之间转)需要类型强制转换 a = b++//先把b赋给a,然后b在++; a = ++b; //b先++然后在赋给a。 //%取模运算:结果的符号与被模数的符号相同 int m1 = 12; int n1 = 5; //m1%n1 == 2 int m2 = -12; int n2 = 5; //m2%n2 == -2 int m3 = 12; int n3 = -5; //m3%n3 == 2 int m4 = -12; int n4 = -5; //m4%n4 == -2
位运算符(<<、>>、&、|、^)(计算完结果为数字)
<<一位乘2(没溢出的情况下)>>一位除2(没溢出的情况下)奇数移位时向下取整再除2,eg:7>>1,0000 0111 0000 0011,为3-128>>1,为-64(负数右移符号不会变,但整数左移符号位可能会变)9 | 7 = 1001 | 0111 = 1111 = 159&7 = 1a^a = 0
关系运算符(>、<、>=、<=、!=)
逻辑运算符(&&、||、!)

&&:短路与,||:短路或

public static void main(String[] args){ if(3>4&&1+2>1){ //此处3>4为false,一假则假,所以&&后面的表达式不会再计算,直接跳出if语句,被短路了 System.out.println(“A”); } }

条件运算符: ?: 相当于简单if-esle语句 eg:3>4?1:0 : 解释 如果3大于4为真,那么输出1,如果为假输出0

优先级

单目运算符优先级高于多目运算符算术运算符 > 位运算符 > 关系运算符 > 逻辑运算符
最新回复(0)