Java-运算符

本文详细介绍了Java中的算术运算符、赋值运算符、逻辑运算符和位运算符的基本用法及注意事项,通过实例展示了各种运算符的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算术运算符

package com.java.base;
/**
 * 算术运算符 + - =  + - * / % ++ --
 */
public class TestAri {

    public static void main(String[] args){
        /*
         * /运算(除运算)
         */
        int i = 12;
        int i2 = i/5;
        System.out.println(i2);
        //将i强转为double
        //double i3 = (double)i/5;   //若写成(double)(i/5)结果还是2.0
        double i3 = i/5.0;
        System.out.println(i3);
        /*
         * %运算(取余运算)
         */
        int i4 = i%5;
        System.out.println(i4);
        /*
         * ++运算    后++  先运算后增1   前++ 先增1后运算
         */
        int ii = 10;
        int ii1 = ii++;//后++
        System.out.println(ii);//11
        System.out.println(ii1);//10

        int jj = 10;
        int jj2 = ++jj;
        System.out.println(jj);//11
        System.out.println(jj2);//11
    }
}

赋值运算符

package com.java.base;
/**
 * 赋值运算符: = += -= *= /= %=
 * =支持连续赋值,赋值是从右->左
 * += -=等等既可以完成运算,又不改变运算对象的数据类型。
 * += -= /= %= 完成的是累加 累减 累除 累余 其中不涉及强转,但是运算后不改变运算对象的数据类型
 *
 */
public class TestAss {

    public static void main(String[] args){

        int i = 10; // = 是一个赋值运算符,将10赋值给i
        i += 2; //i = i + 2 同时i的数据类型不会发生改变(i += 2可以理解成在i的基础上累加2)
        System.out.println(i);

        int i1 = 12;
        i1 += 1.5;      //这里虽然1.5是double,但是将其强转为int型(范围大的转范围小的,截取)
        System.out.println(i1);

        int i2 = 13;
        i2 /= 3;
        System.out.println(i2);

        double i3 = 13;
        i3 /= 3;
        System.out.println(i3);
    }
}

逻辑运算符

package com.java.base;
/**
 * 逻辑运算符 & && | || ^ !
 * @author LENOVO
 *
 */
public class TestLogic {

    public static void main(String[] args){

        boolean a = true;
        boolean b = false;

        System.out.println(a & b);  //&(与)      false
        System.out.println(a && b); //&&(短路与)   false
        System.out.println(a | b);  //| (或)     true
        System.out.println(a || b); //||(短路或)   true
        System.out.println(a^b);    //^ (异或)    true 异或:不同为true,相同为false
        System.out.println(!a);     //! (非)     false

        int i = 10;
        int j = 10;
        /*
         * &与短路&&
         * 对于&&,若左端为false,右端不进行运算
         * 对于&,无论左端是false还是true,右端都进行运算
         */

        if(b && ++i > 0){
            System.out.println("早上好");
        }else{
            System.out.println("中午好");
        }
        System.out.println(i);             //10

        if(b & ++j > 0){
            System.out.println("早上好");
        }else{
            System.out.println("中午好");
        }
        System.out.println(j);            //11

        /*
         * |与||
         * ||若左端为true,右端不进行运算
         * |无论左端为true或者false,右端都要进行运算
         */
        int ii = 2;
        int jj = 2;

        if(a || ++ii > 0){
            System.out.println("下午好");
        }else{
            System.out.println("晚上好");
        }
        System.out.println(ii);              //2

        if(a | ++jj > 0){
            System.out.println("下午好");
        }else{
            System.out.println("晚上好");
        }
        System.out.println(jj);             //3
    }
}

位运算符

package com.java.base;
/**
 * 位运算符 << >> >>> & | ^ ~
 */
public class TestBit {

    public static void main(String[] args){

        /*
         * << 左移运算符(左移一位相当于乘以二(末尾补0))
         * 注意:左移位数不能太多,超出类型范围 
         */
        int i = 12;
        i = i << 2;
        System.out.println(i);  //48

        int ii = -12;
        ii = ii << 2;
        System.out.println(ii); //-48

        /*
         * >> 右移运算符(右移一位相当于除以二(符号位是什么补什么))
         * >>>  无符号右移运算符(不管正负都补0)
         * 对于正数,>>和>>>结果一致
         * 对于负数,>>和>>>结果不一致
         */

        int j = 12;
        j = j >> 2;
        System.out.println(j);  //3

        //j = j >>> 2;
        //System.out.println(j);    //3

        int jj = -12;
        //jj = jj >> 2;
        //System.out.println(jj);       //-3

        jj = jj >>> 2;
        System.out.println(jj);     //1073741821

        /*
         * 位运算指的都是二进制位
         * &两个操作数的每一位进行与运算
         * |两个操作数的每一位进行或运算
         * ^两个操作数的每一位进行异或运算
         * ~操作数按位取反
         */
        int a = 12;
        int b = 5;
        System.out.println(a & b);  //4
        System.out.println(a | b);  //13
        System.out.println(a ^ b);  //9
        System.out.println(~ b);   //-6 注意按位取反包括符号位
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值