三、运算符

运算符时用于对定义的变量做运算的。

特点:

1、但凡做过运算,结果类型不会低于int型

        byte a=1,o=2;
        byte p=(byte)(a+o);
        System.out.println(p);

2、但凡做过运算,结果类型为出现过最高的类型

        int w=4;
        double e=2.5;
        double r=w*e;
        System.out.println(r);

注意,结果范围:int——double

3.1算数运算符

符号
+加法,拼接
-减法
*乘法
/除法除号的两侧如果都是整数,只能得到整数;有一侧是小数才能得到小数
%取余a%b==0; a是b的倍数
++自加a++; ++a;
--自减a--; --a;
         int l=1;
        System.out.println(l++);//1
        System.out.println(l);//2
        System.out.println(++l);//3

注意:

++ -- 当自加自减运算时没有其他运算或操作,无区别

当其他操作

++前置是先自+1再输出,++后置是先输出再+1

3.2比较运算符

又叫关系运算符:

符号含义特殊情况
==判断两个值是否相等
!=不等于
>大于
<小于
>=大于等于
<=小于等于

注意:

1、比较运算符结果是:布尔类型 true false

2、经常可以用于判断条件

3、比较的变量的值(和内存空间的大小无关)

        int a = 4, b = 3;
        //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);

值的比较

        int a = 10;
        char c = 10;
        float f = 10.0f;
        double d = 10.0;
        
        System.out.println(a == c);
        System.out.println(c == f);
        System.out.println(c == d);
        System.out.println(f == d);

3.3逻辑运算符

3.3.1逻辑运算符

符号含义特殊情况
&&短路与当第一个操作数为假,第二个操作数不执行(被短路)
&逻辑与两侧都执行
||短路或当第一个操作数为真,第二个操作数不执行(被短路)
|逻辑或两侧都执行

注意:

与:两端操作数,同真则真,一假则假

或:两端操作数,一真则真,同假则假

非:真变假,假变真

逻辑运算符的操作数必须是布尔类型

        int a = 1, b= 2, c = 3;
        //逻辑运算      
        System.out.println(a ++ == b &&  ++ b == c);
        //a > b  a > c      
        System.out.println(a > b &&  a > c);
        //a b c 相等
        System.out.println(a == b && b == c);
        System.out.println(!true);
        System.out.println(!(a == b));

[总结:]

与:&& 短路 & 不短路,& 操作的时数字,不做逻辑运算,位运算

或:|| 短路 | 不短路,| 操作的是数字,不做逻辑运算,位运算

        int a = 1, b = 1, c = 1;
        //boolean boo1 = a ++ == 1 && b ++ == 1 || c++ == 1;
        //System.out.println(boo1);// true
        //System.out.println(a + "," + b + "," + c);// 2 2 1
                
        boolean boo1 = ++a == 2 || b ++ == 1 && ++c == 2;
        System.out.println(boo1);// true
        System.out.println(a + "," + b + "," + c);// 2 1 1

3.3.2 位运算

(二进制运算:先变成二进制,了解)

按位与& : 同为1,得到1,有0则0;

按位或 | :有1为1,同0则0;

按位异或 ^:相同为0,不同为1;

左移<< 左移n位 => *2的n次幂

右移>> 右移n位 => /2的n次幂

        // 2 0000 0010
        // 8 0000 1000
        //左移
        //System.out.println(2 << 2);//0000 1000  2 * 4
        //System.out.println(5 << 3); // 5 * 8 = 40
        //System.out.println(3 << 2); // 3 * 4
        //右移
        //System.out.println(16 >> 2);//16 / 4
        //System.out.println(32 >> 3); // 32 / 8
        
        System.out.println(2 & 3); // 按位与
        //0000 0010
        //0000 0011
        //0000 0010
        
        System.out.println(2 | 3); // 按位或
        //0000 0010
        //0000 0011
        //0000 0011
        
        System.out.println(2 ^ 3);// 按位异或 
        //0000 0010
        //0000 0011
        //0000 0001

3.4条件运算符

三目运算符(三元运算符,需要三个操作数)

符号含义特殊情况
条件操作数1?操作数2:操作数3先做条件判断,如果是真的,最终去操作数2,如果假的,最终取操作数3取最高类型
        int age = 17;
        System.out.println(age > 18 ? "成年人" : "未成年");
        int a = 54, b = 33;
        //获得a和b的最大值
        System.out.println("最大值="  + (a > b ? a : b));
        
        //获得a和b的最小值
        int min = 0;
        min = a < b ? a : b;
        System.out.println("最小值="  + min);
        //取最高类型
        double res = 99 > 8.0 ? 99 : 8.0;
        System.out.println(res);// A 99 B 8.0 C 99.0 D 1

3.5赋值运算符

将右侧的值赋给左侧。

符号含义特殊情况
=赋值
+=加上再赋值,a+=10; a=a+10;+=完成类型内部转化
-=减等于
*=乘等于
/=除等于
%=取余等于
        byte a = 10 , b = 20;
        a = 20;
        // a = a + 10;  错误写法
        a += 10;
        System.out.println(a);

注意:

1、=赋值,取最后一次赋值的结果

2、+= -= *= /= %=  可以内部转化类型(数据类型不发生改变)

3、除了++ -- 后置,赋值运算符的优先级最低

3.6运算符总结

优先级:

1、单目 ! () ++ -- 前置 -

2、算数运算符

3、关系运算符

4、逻辑运算符

5、条件运算符

6、赋值运算符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值