【JavaSE基础】2、运算符与表达式

3. 运算符与表达式

运算符的优先级(由高到低):

算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

( )
++--!
*/%
+-
>>=<<===!=
&&||
=+=-=*=/=%=

3.1 算术运算符

双目运算符:只有两个运算数参数(+、-、*、/、%)

/:如果两边的操作数都是整数类型,那么运算结果也是整数类型,即会丢弃小数部分。如果至少有一个操作数是浮点类型,那么结果也是浮点类型。

%:返回两个数相除后的余数。

代码示例:

public static void main(String[] args) {
    test01();
}

private static void test01() {
    // 1. 双目运算符:
    int  a = 10;
    int b = 3;
    double c = 1.5;
    System.out.println("a + b = " + (a + b));
    System.out.println("a - b = " + (a - b));
    System.out.println("a * b = " + (a * b));
    System.out.println("a / b = " + (a / b));
    System.out.println("a / c = " + (a / c));
    System.out.println("a % b = " + (a % b));
}

程序运行结果为:

image-20240701141425712

单目运算符:只有一个运算数参数(++、–)

a++、++a:相当于a = a + 1

a–、–a:相当于a = a - 1

c = ++a:相当于:① a = a + 1; ② c = a

c = a++: 相当于:① c = a; ② a = a + 1

代码示例:

public static void main(String[] args) {
    test01();
}

private static void test01() {
    int  a = 10;
    int b = 3;
    // 2. 单目运算符(++ --)
    // 2.1 ++运算符
    // 2.1.1  前加
    // 情况一:单独使用时
    ++a;                    // 相当于:a = a + 1
    System.out.println("a = " + a);
    // 情况二:与表达式一起使用时
    int c = ++a;           // 相当于:① a = a + 1; ② c = a;
    System.out.println("c = " + c + ",a = " + a);

    // 2.1.2 后加
    // 情况一:单独使用时
    a++;                   // 相当于:a = a + 1;
    System.out.println("a = " + a);
    // 情况二:与表达式一起使用时
    c = a++;               // 相当于:① c = a; ② a = a + 1;
    System.out.println("c = " + c + ",a = " + a);

    // 2.2 --运算符
    // 2.2.1  前减
    // 情况一:单独使用时
    --a;                  // 相当于:a = a -1;
    System.out.println("a = " + a);
    // 情况二:与表达式一起使用时
    c = --a;             // 相当于:① a = a - 1; ② c = a;
    System.out.println("c = " + c + ",a = " + a);
    // 2.2.2 后减
    // 情况一:单独使用时
    a--;                // 相当于:a = a -1;
    System.out.println("a = " + a);
    // 情况二:与表达式一起使用时
    c = a--;            // 相当于:① c = a; ② a = a - 1;
    System.out.println("c = " + c + ",a = " + a);

}

程序运行结果为:

image-20240701140144292

3.2 关系运算符

比较运算符:>、>=、<、<=、==、!=

用在关系表达式中(返回的是一个布尔值),代表比较大小

代码示例:

public static void main(String[] args) {
    test02();
}

private static void test02() {
    int a = 10,b = 5;
    boolean  b1 = a > b;
    System.out.println("b1 = " + b1);
    boolean b2 = a == b;
    System.out.println("b2 = " + b2);
    boolean b3 = a <= b;
    System.out.println("b3 = " + b3);
}

程序运行结果为:

image-20240701143942216

3.3 赋值运算符

=、+=、-=、*=、%=

代码示例:

public static void main(String[] args) {
    test03();
}

private static void test03() {
    // 1. 简单赋值运算符=(等号右边的值赋给=号左边的变量)
    int a = 10;
    System.out.println("a = " + a);
    // 2. 复合赋值运算符
    a += 5;
    System.out.println("a = " + a);
    a -= 3;
    System.out.println("a = " + a);
    a *= 2;
    System.out.println("a = " + a);
    a /= 5;
    System.out.println("a = " + a);
    a %= 5;
    System.out.println("a = " + a);
}

程序运行结果为:

image-20240701144252353

3.4 逻辑运算符

&&、||、!:用于链接多个关系表达式

1、逻辑与(&&)的用法:

① 普通用法:多个参与运算的表达式都返回true,整个表达式才返回true

② 短路用法:参与运算的多个表达式,只要有一个为false,此时就不会再向后执行,整个表达式返回false

代码示例:

public static void main(String[] args) {
    test04();
}

private static void test04() {
    // 1. 逻辑与&&用法:
    // 1.1 普通用法:代表的是多个参与运算的表达式,都返回true,整个表达式才返回true
    int a = 10,b = 5,c = 8,d = 17;
    if (a > b && c > d){
        System.out.println("条件成立。");
    }else{
        System.out.println("条件不成立。");
    }
    // 1.2 短路用法:参与运算的多个表达式,只要有一个为false,此时就不会再向后执行了,整个表达式就返回false,
    if(a++ < --b && ++c < d--){
        System.out.println("------条件成立--------。");
    }
    System.out.println("a = " + a + ",b = " + b + ",c = " + c + ",d = " + d);
}

程序运行结果为:

image-20240701150552197

2、逻辑或(||)的用法:

① 普通用法:多个参与运算的表达式,每个表达式为false,整个表达式才返回false

② 短路用法:参与运算的多个表达式,只要有一个为true,此时就不会再向后执行,整个表达式返回true

代码示例:

public static void main(String[] args) {
    test04();
}

private static void test04() {
    int a = 10,b = 5,c = 8,d = 17;
    // 2. 逻辑或||用法:
    // 2.1 普通用法:代表的是多个参与运算的表达式,每个表达式为false,整个表达式才为false
    boolean b1 = a < b || c > d;
    System.out.println("b1 = " + b1);
    // 2.2 短路用法:参与运算的多个表达式只要有一个为true,后面的表达式就不参与运算了。
    boolean b2 = a++ > --b || d-- < c++;
    System.out.println("b2 = " + b2);
    System.out.println("a = " + a + ",b = " + b + ",c = " + c + ",d = " + d);
}

程序运行结果为:

image-20240701150750040

3、逻辑非(!)的用法:取反

代码示例:

public static void main(String[] args) {
    test04();
}

private static void test04() {
    int a = 10,b = 5,c = 8,d = 17;
    boolean b2 = a++ > --b || d-- < c++;
    System.out.println("b2 = " + b2);
    // 3. 逻辑非(取反):
    boolean b3 = !b2;
    System.out.println("b3 = " + b3);
}

程序运行结果为:

image-20240701151508540

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮生146

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值