这篇文章为你搞懂2个问题
- java 中的常用运算符有哪些?如何使用?
- 这些运算符的运算优先级是怎样的?
算数运算符
明显是做数学运算的,包括以下符号:
+
加法运算
敲一敲:public class DemoAdd { public static void main(String[] args) { int sum=2+3; System.out.println(sum);//输出变量 sum 的值 int a=5; int b=3; int result=a+b;//将变量 a 的值与变量 b 的值相加 System.out.println(result); result+=20;//相当于 result=result+20; System.out.println(result); } }
当对一个变量本身进行算数运算可以使用
+=
或-=
或*=
或/=
或%=
进行简化int a=10;a+=2;
在声明变量后进行操作
但声明变量时赋值便是非法的int x+=10;
-
减法运算
敲一敲:public class DemoMinus { public static void main(String[] args) { int diff=2-3; System.out.println("差:"+diff); double a=55.4; double b=5.2; double result=a-b; System.out.println("变量a的值减变量b的值等于:"+result);//结果不一定精准 result-=10;//相当于 result=result-10; System.out.println("结果:"+result); } }
*
乘法运算
敲一敲:public class DemoMultiply { public static void main(String[] args) { int product=2*3; System.out.println("积:"+product); double a=10; double b=5; double result=a*b; System.out.println("变量a的值乘以变量b的值等于:"+result); result*=10;//相当于 result=result*10; System.out.println("结果:"+result); } }
/
除法运算
敲一敲:public class DemoDivide { public static void main(String[] args) { int product=5/2; System.out.println("商:"+product); double a=5; double b=2; double result=a/b; System.out.println("变量a的值除以变量b的值等于:"+result); result/=10;//相当于 result=result/10; System.out.println("结果:"+result); } }
5. `%` 取模、取余运算
敲一敲:
```java
public class DemoRemainder {
public static void main(String[] args) {
//正常求余数
int result=10%3;
System.out.println("10%3="+result);
//小数在前
int result1=2%5;
System.out.println("2%5="+result1);
//其中一个是负数
int result2=-3%2;
System.out.println("-3%2="+result2);
//两个数都是负数
int result3=-2%-5;
System.out.println("-2%-5="+result3);
}
}
++
--
自增、自减运算符
敲一敲:public class DemoSelf { public static void main(String[] args) { int a=10; a++;//后置自增 System.out.println(a);//11 --a;//前置自减 System.out.println(a);//10 System.out.println(++a);//11 System.out.println(a++);//11 System.out.println(a);//12 } }
自增、自减运算符是对一个变量本身进行加1或减1的操作
运算符可以防置在变量前或后
前置的运算符会先进行加1或减1的操作然后再使用,而后置则是先使用再进行操作
比较运算符
对比两者之间的关系,运算后的结果是布尔值
符号 | 介绍 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 用于比较值和内存地址 |
!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
敲一敲:
public class DemoCompare {
public static void main(String[] args) {
System.out.println(10>5);//10大于5 true
System.out.println(10<5);//10小于5 false
System.out.println(1!=1);//1不等于1 false
System.out.println(10==5);//10等于5 false
System.out.println(9>=9);//9大于等于9 true
System.out.println(5<=8);//5小于等于8 true
}
}
逻辑运算符
符号 | 介绍 |
---|---|
&& |
与 运算符两边都为true运算结果为true |
|| |
或 运算符只要一边为true运算结果为true |
! |
非 取反,为true时结果为false,为false时结果为true |
敲一敲:
public class DemoLogic {
public static void main(String[] args) {
int age=50;
int money=100;
//两边都不符合条件 false
System.out.println((age<40)&&(money>100));
//只符合一个条件 false
System.out.println((age<60)&&(money>100));
//两边都符合条件 true
System.out.println((age<60)&&(money>30));
//两边都不符合条件 false
System.out.println((age<40)||(money>100));
//只符合一个条件 true
System.out.println((age<60)||(money>100));
//两边都符合条件 true
System.out.println((age<60)||(money>30));
boolean isBig=age>60;//false
System.out.println(!isBig);//取反 true
}
}
位运算符
用于对二进制数据的操作
符号 | 介绍 |
---|---|
>> |
对二进制向右位移n位 |
<< |
对二进制向左位移n位 |
& |
位与运算 同位的二进制都为1时结果为1 |
| |
位或运算 同位的二进制有一个为1时结果为1 |
^ |
异或 从二进制高位开始比较,如果相同则为0,不相同则为1。 |
~ |
位非 |
敲一敲:
demo1
public class DemoBit {
public static void main(String[] args) {
System.out.println(10>>1);//5
System.out.println(7<<1);//14
}
}
位移运算符操作的是二进制,上例中 10 的二进制是
1010
向右位移1位 变成了101
左边空缺将用 0 补上0101
转为10进制为 5
向左位移原理一样 7 的二进制为0111
向左位移后,右边补0 为1110
转为10进制为 14
demo2
public class DemoBit {
public static void main(String[] args) {
System.out.println(5|1);//5
System.out.println(3|2);//3
}
}
上例中 5 和 1 转为二进制如下
5 0101
1 0001
5 0101
对应的位中只要有1 结果为1
demo3
public class DemoBit {
public static void main(String[] args) {
System.out.println(7^4);//3
}
}
7和4的二进制如下
7 0111
4 0100
3 0011
对应位值相同为0不同为1
运算符的优先级
优先级顺符由高到低是
小括号 > 算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
试一试
- 将一个整数除以2或乘2而不使用
+ - * /
,如何实现?
搜索关注公众号「享智同行」,第一时间获取技术干货
回复"006"获取答案
原文地址:http://blog.51cto.com/13219188/2298662
时间: 2024-10-31 10:28:07