当前位置:主页 > 软件编程 > JAVA代码 >

一文学会Java运算符的使用

时间:2023-02-19 10:53:36 | 栏目: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

您可能感兴趣的文章:

相关文章