运算符详解

在这里插入图片描述

基本运算符

a/b默认为int 除出来有小数时要类型转换一下 否则输出结果有误

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //Ctrl + D :复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);  //输出结果为0 不正确
        System.out.println(a/(double)b);//强转一下 除出来有小数要注意作用范围

    }

不一样的数据类型放在一起加减乘除: 有Long则结果为Long 没Long则结果为Int 有double则结果一定为double

public class Demo02 {
    public static void main(String[] args) {
        long a = 123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;
        double e = 1.0;

        System.out.println(a+b+c+d);//Long
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int
        System.out.println(c+d+e);//double
    }

%:取余 在java中叫模运算 =在java中是赋值的意思 而==才是等于的意思

public class Demo03 {
    public static void main(String[] args) {
        // 关系运算符返回的结果:  正确,错误    布尔值

        int a = 10;
        int b = 20;
        int c = 21;

        //取余 模运算
        System.out.println(c%a); //c / a     21 / 10 = 2......1

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);

    }

自增自减运算符(重点) 初识Math类

a++ 相当于在执行完"int b = a++“这行代码后多了一行代码"a=a+1”,反之++a则是在执行代码后,在这行代码前多了一行"a=a+1"

很多运算 例如幂运算 我们会使用一些工具类来操作 例如Math类 里面封装了许多数学工具

public class Demo04 {
    public static void main(String[] args) {
        //++   --   自增,自减  一元运算符
        int a = 3;

        int b = a++;//执行完这行代码后,先给b赋值,再自增
        //a = a + 1;
        System.out.println(a);
        //a = a + 1;
        int c = ++a;//执行完这行代码后,先自增,再给c赋值



        System.out.println(a);

        System.out.println(b);

        System.out.println(c);


        //幂运算  2^3 = 8  很多运算,我们会使用一些工具类来操作
        double pow = Math.pow(2, 3);
        System.out.println(pow);


    }

逻辑运算符

逻辑与运算:两个变量都为真,结果才为true

逻辑或运算:两个变量有一个为真,则结果才为真

非运算:如果是真,则变为假;如果是假则变为真

短路运算:逻辑与运算中 如果前面的条件已经为假 则不会再执行后面的条件了

这里做了个实验 如果执行完"c<4",判断为假后 继续执行"c++<4"的话 则最后c输出结果应该是5,可结果是4,证实了上面的结论.

public class Demo05 {
    public static void main(String[] args) {
        // 与(and)  或(or)  非(取反)

        boolean a = true;
        boolean b = false;


        System.out.println("a&&b:"+(a&&b));//逻辑与运算 有假则假
        System.out.println("a||b:"+(a||b));//逻辑或运算 有真则真
        System.out.println("!(a&&b):"+!(a&&b));//真变假,假变真

        //短路运算
        int c = 4;
        boolean d = (c<4)&&(c++<4);

        System.out.println(d);  //false
        System.out.println(c);  //结果还是4
    }

位运算符

与:上下每位对应 两者都为1 才为1 否则为0

或:两者有一个为1 则结果为1

异或:两者相同则为0 不同则为1

取反:每一位都取反 0变1 1变0

在一些底层运算中 位运算很常用 因为它效率极高

<< 意思是左移 即乘以2

右移则意为除以二

public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101

----------------------------------------

        A&B = 0000 1100 与
        A|B = 0011 1101 或
        A^B = 0011 0001 异或
        ~B = 1111 0010  取反

        2*8 = 16   2*2*2*2
        效率极高!!!!
        <<    左移  *2
        >>    右移  /2

        0000 0000       0
        0000 0001       1
        0000 0010       2
        0000 0011       3
        0000 0100       4
        0000 1000       8
        0001 0000       16

         */
    }

扩展赋值运算符

“+=”"-="等等就是用来偷懒的运算符

+除了是加号运算符 还是字符串连接符

在加号运算符两侧 只要出现了String类型(字符串类型),那它就会把其余的操作数都转换为String类型然后进行连接.

细节:如果字符串在前 则进行拼接 如果在后 则前面依旧会进行运算

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b;  //a = a+b
        a-=b;  //a = a-b

        System.out.println(a);


        //字符串连接符  + , String
        System.out.println(""+a+b); //1020
        System.out.println(a+b+""); //30
    }

条件运算符

可以理解为if 以后也可以用if 但是这个用法必须掌握 因为它让代码更加精简

//三元运算符
public class Demo08 {
    public static void main(String[] args) {
        // x ? y : z
        //如果x==true,则结果为y,否则结果为z
        int score = 50;
        String type = score <60?"不及格":"及格"; //必须掌握
        //if
        System.out.println(type);
    }
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值