一文学会Java运算符的使用
算术运算符
运算符 | 描述 |
---|---|
+ | 两数相加 |
- | 两数相减 |
* | 两数相乘 |
/ | 两数相除 |
% | 取模,返回两数相除的余数 |
++ | 自加一 |
- - | 自减一 |
public class User { public static void main(String[] args) { int a = 20; int b = 10; System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println(a / b); System.out.println(b % a); } }
输出:
30
10
200
2
10
++,- -运算符
当++、- -出现在变量之前,先自加、自减1,再做赋值运算
public class User { public static void main(String[] args) { int a = 10; int b = ++a; System.out.println(a);// 11 System.out.println(b);// 11 } }
当++,- -出现在变量之后,先做赋值运算,再自加、自减1
public class User { public static void main(String[] args) { int a = 10; int b = a++; System.out.println(b);// 10 System.out.println(a);// 11 } }
扩展
+运算符有两个作用
①求和
public class User { public static void main(String[] args) { System.out.println(3 + 4);// 7 } }
②字符串拼接
public class User { public static void main(String[] args) { System.out.println("Hello" + "Java" + "World");// HelloJavaWorld } }
关系运算符
运算符 | 描述 | 结果 |
---|---|---|
== | 判断值是否相等 | 是返回true,不是返回false |
!= | 判断值是否不相等 | 是返回trut,不是返回false |
>= | 判断左边的值是否大于等于右边 | 是返回true,不是返回false |
<= | 判断左边的值是否小于等于右边 | 是返回true,不是返回false |
> | 判断左边的值是否大于右边 | 是返回true,不是返回false |
< | 判断左边的值是否小于右边 | 是返回true,不是返回false |
public class User { public static void main(String[] args) { int a = 20; int b = 10; System.out.println(a == b); System.out.println(a != b); System.out.println(a > b); System.out.println(a < b); System.out.println(a <= b); System.out.println(a >= b); } }
输出:
false
true
true
false
false
true
逻辑运算符
运算符 | 描述 | 结果 |
---|---|---|
& | 与 | 两边都为True,结果才为True |
│ | 或 | 有一边为True,结果就为True |
! | 非 | 真值变假,假值变真 |
&& | 逻辑与 | 两边都为True,结果才为True |
││ | 逻辑或 | 有一边为True,结果就为True |
public class User { public static void main(String[] args) { boolean a1 = true; boolean a2 = false; System.out.println(a1 && a2); System.out.println(a1 || a2); System.out.println(!a1); } }
输出:
false
true
false
与&和逻辑与&&
public class User { public static void main(String[] args) { // 与& int a = 0; int b = 1; // 当左边表达式为false,右边的表达式依旧会执行 System.out.println(a > b & b > a++);// false System.out.println(a); // 1 // 逻辑与&& int c = 0; int d = 1; // 当左边的表达式为false,右边的表达式不执行(短路现象) System.out.println(c > d && d > c++);// false System.out.println(c); // 0 } }
或|和逻辑或||
public class User { public static void main(String[] args) { // 或| int a = 0; int b = 1; // 当左边表达式为true,右边的表达式依旧会执行 System.out.println(a < b | b > a++);// true System.out.println(a); // 1 // 逻辑或|| int c = 0; int d = 1; // 当左边的表达式为true,右边的表达式不执行(短路现象) System.out.println(c < d || d > c++);// true System.out.println(c); // 0 } }
总结
与&和或|要对所有条件都进行判断(无论左边是真假,右边都会执行)
逻辑与 &&当左边的表达式为false,右边的表达式不执行
逻辑或 || 当左边的表达式为true,右边的表达式不执行
什么时候使用&&,什么时候使用&
从效率方面来说,&&比&的效率高一些。
因为与&不管第一个表达式结果是什么,第二个表达式一定会执行。
大部分情况下都建议使用短路与&&,只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择与&。
赋值运算符
运算符 | 描述 |
---|---|
= | 直接赋值 |
+= | 加后赋值 |
-= | 减后赋值 |
*= | 乘后赋值 |
/= | 除后赋值 |
%= | 取模后赋值 |
public class User { public static void main(String[] args) { int a = 2; int b = 1; System.out.println(a += b);//a = a + b System.out.println(a -= b);//a = a - b System.out.println(a *= b);//a = a * b System.out.println(a /= b);//a = a / b System.out.println(a %= b);//a = a % b } }
输出:
3
2
2
2
0
条件运算符
表达式1?表达式2:表达式3
先判断表达式1的值,若为真则将表达式2的值做为整个表达式的值;若为假则将表达式3的值做为整个表达式的值。
举个栗子:判断a和b的大小,a>b如果成立max=a的值,不成立则max=b的值
public class User { public static void main(String[] args) { int a = 1, b = 2; int max; max = a > b?a:b; System.out.println(max); } }
输出:
2
运算符优先级
Java中用到的运算符除了上面介绍的常用的赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运算符以外,还有其他的运算符。当一个表达式出现多种运算符符号,会按照运算符的优先级来决定运算顺序,Java中运算符优先级见下表
运算符 | 描述 | 优先级 |
---|---|---|
[] () . , ; | 分隔符 | 1 |
Instanceof ++ - - ! | 对象归类、自增自减、非运算 | 2 |
* / % | 算术乘除运算 | 3 |
+ - | 算术加减运算 | 4 |
>> << >>> | 移位运算 | 5 |
< <= > >= | 大小关系运算 | 6 |
== != | 相等关系运算 | 7 |
& | 按位与运算 | 8 |
^ | 按位异或运算 | 9 |
│ | 按位或运算 | 10 |
&& | 逻辑与运算 | 11 |
││ | 逻辑或运算 | 12 |
? : | 三目条件运算 | 13 |
= += -= *= /= &= | 赋值运算 | 14 |
到此这篇关于一文学会Java运算符的使用的文章就介绍到这了,更多相关Java运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot使用mybatis-plus分页查询无效的问题解决
MyBatis-Plus提供了很多便捷的功能,包括分页查询,本文主要介绍了SpringBoot使用mybatis-plus分页查询无效的问题解决,具有一定的参考价值,感兴趣的可以了解一下2023-12-12jstack报错Unable to open socket file解决
这篇文章主要为大家介绍了jstack报错Unable to open socket file的解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2024-02-02Java 随机生成验证码(支持大小写字母、数字、随机字体)的实例
java随机产生验证码,可以随机生成数字、大写字母、小写字母。还可以随机生成文字字体、及大小。在图片上面可能字体都不不同、大小不等2013-05-05
最新评论