Java day04

基础运算符(已掌握)

逻辑运算符:&&(and),||(or),!(非)

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);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(a/b);//0 (?) (x)
        System.out.println((double)a/b);//0.5 (correct)
    }
}
    public static void main(String[] args) {
        long a = 1231231231231231L;
        int b = 123;
        short c = 10;
        byte d = 8;

        //如果计算里面有Long/double类型结果就是Long/double类型,除此都是int
        System.out.println(a+b+c+d);//1231231231231372 Long类型
        System.out.println(b+c+d); //141 int类型
        System.out.println(c+d);//18 int类型

    }

关系运算符

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

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

        System.out.println(c%b);//1(余数用%)
        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a>=b);//false
        System.out.println(a<=b);//true
    }
}

自增自减*(一元运算符)

public class Demo04 {
    public static void main(String[] args) {
        //++    --  自增, 自减  一元运算符(一个数)
        int a = 3;
        int b = a++;    //执行完这行代码后, 先给b赋值,再自增(先b=a,再a=a+1)
        //a++   a = a + 1
        System.out.println(a);
        //++a   a = a + 1
        int c = ++a;    //执行完这行代码前,先自增,再赋值(先a=a+1,再c=a)

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //幂运算 2^3   2*2*2 = 8
        double pow = Math.pow(2, 3);//2的3次方,Math.pow(2,3)
        System.out.println(pow);

    }
}

逻辑运算符

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  //逻辑运算:and,两个变量都为真,结果才为true
        System.out.println("a || b: "+(a||b));// a || b: true   //逻辑运算:or,如果有一个是真的就是true
        System.out.println("! (a && b) :"+!(a&&b));// ! (a && b) :true  //!相反就完事儿了

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);
    }
}

位运算

    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 0101       5
        0000 0110       6
        0000 0111       7
        0000 1000       8
        0001 0000       16
        0010 0000       32
         
         */

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

字符串连接符

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

        a+=b; // a = a + b  output:30
        a-=b; // a = a - b    output:10

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

        //字符串连接符    +   , String
        System.out.println(a+b);//30
        System.out.println(""+a+b);//1020 如果字符串在前面后面的会拼接不会计算
        
        System.out.println(a+b+"");//30 因为字符串在后面前面还是会先计算出来

    }

条件运算符*

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

        int score = 80;
        String type = score < 60?"不及格":"及格";//必须掌握
        // if
        System.out.println(type);//及格
    }
}

运算优先级 ()

 

posted @ 2020-11-26 15:07  爱java的luluxiu  阅读(79)  评论(0)    收藏  举报