• 欢迎光临~

# day09

## 运算符

![image-20221216154445718](C:UsersbiaoAppDataRoamingTyporatypora-user-imagesimage-20221216154445718.png)

![image-20221217000214906](C:UsersbiaoAppDataRoamingTyporatypora-user-imagesimage-20221217000214906.png)

`package operator;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((double)a/b);    }}`
`package operator;public class Demo02 {    public static void main(String[] args) {        long a = 3213546546867L;        int b = 5646541;        short c = 3000;        byte d = 100;        System.out.println(a+b+c+d);//long        System.out.println(b+c+d);//int        System.out.println(c*d);//int    }}`
`package operator;public class Demo03 {    public static void main(String[] args) {        //关系运算符返回的结果：  正确，错误    布尔值        //if        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);    }}`
`package operator;public class Demo04 {    public static void main(String[] args) {        //++ --   自增 ， 自减    一元运算符        int a = 3;        int b = a++;     //执行完这行代码后，先给b赋值，在自增        //a = a + 1;        System.out.println(a);//4        System.out.println(b);//3        //a = a + 1;        int c = ++a;     //执行完这行代码前，先自增，在给c赋值        System.out.println(a);        System.out.println(b);        System.out.println(c);        //幂运算 2^3    2*2*2 = 8 很多运算，我们会使用一些工具类来操作        double pow = Math.pow(2, 3);        System.out.println(pow);    }}`
`package operator;//逻辑运算符public class Demo05 {    public static void main(String[] args) {        //  与(and)      或(or)         非(取反)        boolean a = true;        boolean b = false;        System.out.println("a && b:"+(a&&b));//逻辑与运算：两个变量都为真，结果才为true        System.out.println("a || b:"+(a||b));//逻辑或运算：两个变量有一个为真，结果就为true        System.out.println("!(a && b):"+!(a&&b));//逻辑非运算：如果是真，则变为假；如果是假，则变为真        //短路运算        System.out.println("a && b:"+(b&&a));//因为b已经是false，所以后面的a不执行        int c = 5;        boolean d = (c<4)&&(c++<4);        System.out.println(c);//5        System.out.println(d);//false    }}`
`package operator;public class Demo06 {    public static void main(String[] args) {        /*        A = 0011 1100        B = 0000 1101        ---------------------------        A&B = 0000 1100 两个都为1，结果才为1        A|B = 0011 1101 两个有一个1，结果则为1        A^B = 0011 0001 相同为0，不同为一        ~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         */        System.out.println(100<<3);        System.out.println(2<<3);    }}`
`package operator;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        b+=b; //b = b+b        System.out.println(a);//10        System.out.println(b);//40        //字符串连接符   +    ，String        System.out.println(""+a+b);//1040        System.out.println(a+b+"");//50        System.out.println(a+""+b);//1040        System.out.println(""+(a+b));//50    }}`
`package operator;//三元运算符public class Demo08 {    public static void main(String[] args) {        // x ? y : z        // 如果x==true，则结果为y，否则结果为z        int score = 20;        String type = score < 60 ? "不及格" : "及格";        System.out.println(type);    }}`