运算符 (续)

 
public class Operation {
    public static void main(String[] args) {
        //赋值运算符 =
        //扩展的赋值运算符 += -= *= /= %=  先运算 后赋值
        //扩展赋值运算符隐含类型的强制转换
        int a1 = 10;
        a1 += 10;//a1 = a1 + 10;
        System.out.println(a1);//20
        short s1 = 20;
        //s1 = s1 + 10;报错 s1 + 10为int型
        s1 += 10;//类似于s1 = s1 + 10; 此时扩展赋值运算符隐含类型的强制转换

        //自增、自减运算符
        // ++自增 --自减 只有一个操作数
        //既可以在变量的左边 也可以在变量的右边
        //单独使用时 ++和--无论放在变量的左边还是右边结果是一样的
        int a2 = 11;
        /*
        a2--;//先取值 后运算
        System.out.println(a2);//10 以进行自减操作
        --a2;//先运算 后取值
        System.out.println(a2);//9
        */
        int a3;
        a3 = a2--;//先取值(a3 = a2) 后运算(a2 = a2 - 1)
        System.out.println(a3);//11
        a3 = --a2;//先运算(a2 = a2 - 1) 后取值(a3 = a2)
        System.out.println(a3);//9
        int x = 10;
        int y = x++ + x++ + x++;//y = 10 + 11 +12
        System.out.println(x);//13
        System.out.println(y);//33

        //关系运算符
        // == != > < >= <=
        //注意:关系运算符运算的结果都是boolean类型 要么是true 要么是false
        //同时注意 == 不要写成 =

        int m = 10;
        int n = 20;
        System.out.println(m==n);//false
        System.out.println(m!=n);//true
        System.out.println(m>n);//false
        System.out.println(m<n);//true
        System.out.println(m>=n);//false
        System.out.println(m<=n);//true
        //如果在开发中  比较的结果在后续程序中需要使用 需要创建一个boolean类型变量保存结果
        //boolean flag = m > n;

        //逻辑运算
        //在数学中 如果表示一个数大于3小于6 : 3<x<6
        //但在java中 要拆分为 x>3 x<6 合并为 x>3 && x<6
        //逻辑运算符
        //&(与)   a&b a和b同为true才为true 否则为false
        //|(或)   a|b a和b同为false才为false 否则为true
        //!(非)   !a 取反 true变为false false变为true
        //^(异或) a^b a和b结果不同为true 不同为false
        int i = 10;
        int j = 20;
        int k = 30;
        System.out.println((i > j) & (i > k));//false
        System.out.println((i < j) | (i > k));//true
        System.out.println(!(i < j));//false

        //短路逻辑运算符
        //&& 短路与 作用与&相同 但是&&当左边为假,则右边不执行 而&无论左边为真或假,右边都执行
        //|| 短路或 作用与|相同 但是||当左边为真,则右边不执行 而|无论左边为真或假,右边都执行
        int p =3;
        int c =4;
        System.out.println(p++ >4 && c++ >5);//左为false 右边不参与运算
        System.out.println(p + "----" + c);

        //位运算
        //位运算指的是进行二进制位的运算
        //~取反
        //&按位与
        //|按位或
        //^按位异或  经过三次异或就可以交换两个数的位置
        //<<左移 将整个二进制数据左移一位 相当于将原来的数乘2
        //>>右移 将整个二进制数据右移一位 相当于将原来的数除2
        //&和| 如果两边的操作数为boolean型则为逻辑运算 如果两边的操作数为整型则为位运算
        int a4 = 5;
        int a5 = 3;
        int a6 = 2;
        System.out.println(~a4);//-6
        //5    0000 0101
        //取反  1111 1010
        //     1000 0110  -6原码
        //     1111 1001  -6反码
        //     1111 1010  -6补码
        System.out.println(a4 & a5);//1
        // 5 0000 0101
        // 3 0000 0011
        //   0000 0001   1
        System.out.println(a6 * a6 * a6);//8
        System.out.println(a6 << 2);//8
        //2       0000 0010
        //左移两位 0000 1000  8

        //三元运算符
        //格式 :关系表达式 ? 表达式1 : 表达式2   (a>b)?a:b
        //三元运算规则
        //1.关系表达式取值为真 则结果为表达式1
        //2.关系表达式取值为假 则结果为表达式2
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值