一文学会Java运算符的使用(Java 运算符)

网友投稿 322 2022-07-31


目录算术运算符关系运算符逻辑运算符赋值运算符条件运算符运算符优先级

算术运算符

运算符描述+两数相加-两数相减*两数相乘/两数相除%取模,返回两数相除的余数++自加一- -自减一

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);

}

}

输出:

3010200210

++,- -运算符

当++、- -出现在变量之前,先自加、自减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(StriisZeITSng[] 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);

}

}

输出:

falsetruetruefalsefalsetrue

逻辑运算符

运算符描述结果&与两边都为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);

}

}

输出:

falsetruefalse

与&和逻辑与&&

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

}

}

或|和逻辑或||

publihttp://c 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

}

}

输出:

32220

条件运算符

表达式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中运算符优先级见下表

运算符描述优先级[] () . , ;分隔符1Instanceof ++ - - !对象归类、自增自减、非运算2* / %算术乘除运算3+ -算术加减运算4>> << >>>移位运算5< <= > >=大小关系运算6== !=相等关系运算7&按位与运算8^按位异或运算9│按位或运算10&&逻辑与运算11││逻辑或运算12? :三目条件运算13= += -= *= /= &=赋值运算14


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于springboot的接口返回值统一标准格式
下一篇:redisson 实现分布式锁的源码解析(redisson限流)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~