Java基础语法—运算符

算术运算符+,-,*,/,%,++,--

package opretor;

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

        System.out.println(a+b);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(b/a);//2
        System.out.println(c%a);//5
        System.out.println(a/b);//0
        System.out.println(a/(double)b);//0.5
        
    }
}

运算中有long类型,则结果为long类型,否则结果为int;同理,运算中有double类型,则结果为double类型,否则结果为float

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

        System.out.println(a+b+c+d); //long
        System.out.println(b+c+d); //int
        System.out.println(c+d); //int

        double e = 0.0001;
        float f = 0.1F;
        float g = 0.2F;

        System.out.println(e+f);//double
        System.out.println(g+f);//float
    }
}

++ -- 自增,自减,一元运算符

int b = i++; 执行完这段代码后,先给b赋值,再自增

int b = ++i; 执行完这段代码后,先自增,再给b赋值

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

        System.out.println(a);//1
        System.out.println(a++);//1
        System.out.println(a);//2
        System.out.println(++a);//3
        System.out.println(a);//3

        System.out.println("=====================");

        System.out.println(b);//6
        System.out.println(b---5);//1
        System.out.println(b);//5
        System.out.println(--b+1);//5

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

赋值运算符=

关系运算符>,<,>=,<=,==,!=,instanceof

关系运算符返回的结果:正确 错误 布尔值

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

        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
    }
}

逻辑运算符 &&,||,!

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

逻辑或运算(||):两个变量有一个为真,结果为true

逻辑非运算(!):如果为真,则为false,如果为假,则为true

//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
        // 与(and) 或(or)  非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println("a&&b:"+(a&&b));//a&&b:false
        System.out.println("a||b:"+(a||b));//a||b:true
        System.out.println("!(a&&b):"+!(a&&b));//!(a&&b):true

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        
        System.out.println(d);//false
        System.out.println(c);//5 说明没执行c++
    }
}

位运算符 &,|,^(取反),~,>>(右移),<<(左移),>>>

重要知识点:<< 即为 乘以2;>> 即为 除以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   相同为0,不同为1
        ~B = 1111 0010

        面试题:2*8怎么算最快

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

        2*8 = 16
        << *2
        >> /2
        2*2*2*2 = 2<<3


         */
        System.out.println(2<<3);//16
        System.out.println(7<<2);//28
    }
}

条件运算符 ? :

public class Demo08 {
    public static void main(String[] args) {
        //三元运算符
        // x ? y : z   如果x==true,则结果为y,否则结果为z

        int score = 80;
        String type = score <60 ? "不及格" : "及格";

        System.out.println(type);//及格
    }
}

扩展运算符 +=,-=,*=,/=

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

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

        System.out.println(a);//30

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

        System.out.println(a);//10

        //字符串连接符   +运算符两侧,只要有一方出现String,会把另一侧都转换成String,再进行联结。
        System.out.println(a+b);
        System.out.println(""+a+b);//1020
        System.out.println(a+b+"");//30
        System.out.println(a+b+""+a+b);//301020

        //小结:如果""在前边,则后边不进行运算;如果""在后边,则先运算,再连接。
    }
}

扩展

运算符优先级 ()最优先,最好就是把想先执行的放在()里

posted @ 2022-03-28 14:38  lauMonkey  阅读(31)  评论(0)    收藏  举报