Java 运算符和运算符优先等级

来源:互联网 发布:五个金冠的淘宝店铺名 编辑:程序博客网 时间:2024/06/03 21:01

运算符

1 赋值运算符

运算符名称用法描述=赋值int a = 3 ;将 = 右边的值 赋值给 = 左边的变量

2 算术运算符

运算符名称用法结果+5 + 27-5-23*5*210/5/22%取余5%21

3 一元运算符

运算符用法描述++(先加)++x 或x++(先用)自增1--(先减)--x或x--(先用)自减1

4 关系(比较)运算符

运算符名称用法结果(Boolean值)>大于2>1true<小于2<1false>=大于等于2>=1true<=小于等于2<=1flase==等于2==1false!=不等于2!=1true

5 逻辑运算符(只能比较 boolean值,结果也为 boolean值)

运算符名称用法描述 ( 结果(Boolean值) )&&(短路)与条件1 && 条件2只要两个条件有一个为假,结果为假&条件1 & 条件2只要两个条件有一个为假,结果为假||(短路)或条件1|| 条件2只要两个条件有一个为真,结果为真|条件1| 条件2只要两个条件有一个为真,结果为真!!条件条件为真时,结果为假,反之亦然^异或条件1 ^ 条件2两个条件结果相同时为假,不同为真

解释:短路

当 条件1 && 条件2 如果条件1为false,结果明显为false,所以条件2不会再判断。

当 条件1 & 条件2 如果条件1为false,结果明显为false,但条件2语句一样会被运算。

6 位运算符(2进制运算符)

运算符名称用法描述&按位与00001001&00001110 -> 00001000按位比较,只要有0,则取0|按位或00001001|00001110 -> 00001111按位比较,只要有1,则取1^按位异或00001001^00001110 -> 00000111按位比较,相同取0,不同取1~按位非~00000010 -> 11111101对位取反<<左移01000011 << 2 -> 00000110每一位向左移动2位,右边补0,超出位数范围则舍去>>带符号右移11111110 >> 2 -> 11111111每一位向右移动2位,左边补符号位,超出位数范围则舍去>>>无符号右移11111110 >>> 2 -> 00111111每一位向右移动2位,左边补0,超出位数范围则舍去

经典案例1:用最快的速度计算2的3次方; 提示:使用<<

经典案例2:int a =1;int b =2;不借助第三个变量,交换两个数的值; 提示: 使用^

7 三目(三元)运算符

运算符名称?:否则

用法:

  • zhangSanScore > 98 ? "奖励Iphone 8 " : "没有任何奖励" ;

  • 语法解释:张三的成绩大于98吗?如果大于"奖励Iphone 8 ",否则"没有任何奖励";

8 字符串连接运算符

运算符名称用法结果+字符串追加String s="张三"+"是个男孩";

s -> 张三是个男孩

注:只要+的两端有一端是字符串,则这个时候+就变成了字符串连接符


9 运算符优先级

优先级运算符结合性1() [] .从左到右2! +(正)  -(负) ~ ++ --从右向左3* / %从左向右4+(加) -(减)从左向右5<< >> >>>从左向右6< <= > >= instanceof从左向右7==   !=从左向右8&(按位与)从左向右9^从左向右10|从左向右11&&从左向右12||从左向右13?:从右向左14= += -= *= /= %= &= |= ^=  ~=  <<= >>=   >>>=从右向左

注:只需要知道 () 的优先级是最高的,其他的不需要记,当运算表达式比较复杂,不能确定运算顺序的时候,可以添加括号 () 控制执行顺序。



原创粉丝点击