java-运算符

运算符

java运算符主要有:
1、算术运算符:加(+)、减(-)、乘()、除()、取余/模(%)、自增(++)、自减(--)
2、赋值运算符:=
3、关系运算符:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、 等于(==)、不等于(!=)
4、逻辑运算符:与(&&)、或(||)、非(!)
5、位运算符:与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)
6、条件运算符: ?:
7、扩展赋值运算符:+=、-+、*=、/=

算术运算符

public class Arithmetic {
    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/(double)b);//因为都是int类型,只取整数,结果就会为0,所以要转成double类型,才会输出0.5
        System.out.println("=====================================================");

        long a1 = 1223456788L;
        int b1 = 123;
        short c1 = 10;
        byte d1 = 8;

        System.out.println(a1+b1+c1+d1);//long 如果两个操作或者多个操作中有一个数为long,那么结果就为long
        System.out.println(b1+c1+d1);//int 如果没有long时候,结果都为int
        System.out.println(c1+d1);//int
        System.out.println((double)c1+d1);//如果为double,结果就为double
        System.out.println("========================================================");

        //取余(取模)也叫做 模运算
        int a2 = 10;
        int b2 = 20;
        int c2 = 21;

        System.out.println(c2%a2);//值为1    相当于:c/a (21 / 10 = 2...1)
        System.out.println("=========================================================");

        //++(自增)  --(自减)  一元运算符
        int a3 = 3;
        int b3 = a3++; //a3++ 相当于 a3 = a3+1。执行完这行代码后,先给b3赋值,在自增

        System.out.println(a3);

        int c3 = ++a3;//++a3 相当于 a3 = a3+1。执行完这行代码前,先自增,再给b3赋值

        System.out.println(a3);

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

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

    }
}

关系运算符

public class Relation {
    public static void main(String[] args) {
        //关系运算符返回的结果:正确 、错误  通过布尔值表示
        //一般会跟if一起使用

        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
    }
}

逻辑运算符

public class Logic {
    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));  //逻辑非运算:如果为真,则变为假,如果为假,则变为真

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

        //短路运算
        int c = 5;
        boolean d = c<4 && (c++ < 4);//如果第一个为错,则返回第一个

        System.out.println(d);
        System.out.println(c);

位运算符

public class Place {
    public static void main(String[] args) {
        //位运算
        /*
        A = 0011 110
        B = 0000 1101
        ----------------------------------
        A&B : 结果为:0000 1100   意思是:与(如果上面跟下面这一位比较,如果两个都是1,才为1,否则就是0)
        A|B:结果为:0011 1101   意思是:或(如果对应位都是0,结果为0,否则为1)
        A^B:结果为:0011 0001   意思是:异或(如果这两个位置相同,为0,否则就为1)
        ~B:结果为:1111 0011   意思是:取反(如果上面跟下面这一位比较,如果两个都是1,才为0,否则就是1)

        例子:2*8 怎么运算最快?
        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(2<<3);

    }
}

条件运算符

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

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

扩展赋值运算符

public class Assignment {
    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类型,就会把其他操作数转换为String,在进行连接。
       System.out.println(a+b);
       System.out.println(""+a+b);  //值为1020,前面出现string类型,就会进行连接
       System.out.println(a+b+"");  //值为30,后面出现string类型,但是依旧会进行运算



    }
}
posted @ 2021-08-23 15:13  欢麦芽  阅读(181)  评论(0)    收藏  举报