基本运算符

基本运算符

Java 语言支持如下运算符:优先级最高()
算术运算符 +,-,*,/,%,++,--
赋值运算符 =
关系运算符 >,<,>=,<=,==,!=,instanceof
逻辑运算符 &&,||,!
位运算符 &,|,^,~,>>,<<,>>>(了解!!!)
条件运算符 ? :
扩展赋值运算符:+=,-=,*=,/=

二元运算符

  • package com.zhen.base;
    
    public class Demo04 {
        public static void main(String[] args) {
            //二元运算符号
            int a = 10;
            int b = 20;
            int c = 30;
            int d = 40;
    
            //当前行复制 Ctrl+d
    
            System.out.println("a+b="+ (a + b));  //30
            System.out.println("a-b="+ (a - b));    //-10
            System.out.println("a*b="+ a * b);      //200
            System.out.println("a/b="+ a / (double)b);     // 0.5
    
    
    
        }
    }
    
    
package com.zhen.base;

public class Demo05 {
    public static void main(String[] args) {
        long a = 123135465446L;
        int b = 132;
        short c = 354;
        byte d = 54;

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


        /*当一个较"小"数据与一个较"大"
        的数据一起运算时,系统将自动将"小"数据转换成"大"数据,再进行运算。
        任意非long整数作运算,结果总是int型
        */

        int a1 = 20;
        int a2 = 30;
        int a3 = 50;
        System.out.println(a1>a2); //false
        System.out.println(a1<a2);  //true
        System.out.println(a1==a2);  //false
        System.out.println(a1!=a2);  //true

        //取余,模运算
        System.out.println(a2%a1);  //10
        // a2/a1  30/20 = 1...10
        System.out.println(a3%a2);  //20


    }
}

一元运算符

  • package com.zhen.base;
    
    public class Demo08 {
        public static void main(String[] args) {
            //一元运算符
    
            int a = 10;
            int b = a++;  //a++   a = a+1  先给b赋值,再自增
            //int b = a;
            //int a = a + 1;
            int c = ++a;      //++a  执行完代码前,先自增,再赋值
    
            System.out.println(a);
            System.out.println(b);
            System.out.println(c);
        //幂运算 2^3 2*2*2
            double pow = Math.pow(3,2);
            System.out.println(pow);
    
            
        }
    }
    
    

逻辑运算符

package com.zhen.base;

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

        /*
            与(and):两个变量都为真,结果才为true
            或(or):两个变量其中一个为真,结果才为true
            非(取反):如果是true,则变为false;如果是false,则变为true;
         */

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

        //短路运算

        int c = 6;
        boolean d = ((c>6)&&(c++<6)); //d=false c=6(前面部分已经是false所有直接短路了)

        System.out.println(d);
        System.out.println(c);
        System.out.println("=====================");
        boolean e = ((c>5)&&(c++<6)); //e=false c=7
        System.out.println(e);
        System.out.println(c);





    }
}

位运算

package com.zhen.base;

public class Demo10 {
    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
            ~A  1100 0011

            <<  相当于*2
            >>  相当于/2

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



         */

    }
}

扩展赋值运算符

package com.zhen.base;


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

        a+=b;
        //a = a + b
        System.out.println(a); // a=30

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

三元运算符

package com.zhen.base;


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

        a+=b;
        //a = a + b
        System.out.println(a); // a=30

         //字符串连接符    +, String
        System.out.println(""+a+b);  // 3020
        System.out.println(""+(a+b));  // 50
        System.out.println(""+(int)(a+b));  // 50
        System.out.println(a+b+"");     //50
        System.out.println("================");

        int c = 5;
        int d = 8;
        c*=d;
        //c = c * d
        System.out.println(c);
        System.out.println(d);
        System.out.println("=================");
        int e = 8;
        int f = 10;
        e/=f;   //e=(int)(e/f)???
        System.out.println(e);  //0
        System.out.println((double) e);     //0.0

        int e1 = 8;
        int f1 = 10;
        System.out.println((double) e1/f1);  //0.8
        System.out.println(e1/f1);     //0.0,因为是int类型

        float e2 = 8;
        e2/=f1;
        //e2 = e2 / f1;

        System.out.println(e2); // 0.8
    }
}

posted @ 2022-04-16 17:44  北落君  阅读(116)  评论(0)    收藏  举报