JAVA运算符

JAVA语言支持如下运算符

  1. 算术运算符:+、- 、* 、/ 、% (取余)、++ 、--
  2. 赋值运算符: =
  3. 关系运算符:>、< 、>=、<=、==(等于)、!=(不等于)
  4. 逻辑运算符:&&(与) 、 ||(或) 、!(非)

从代码中了解其含义

算术运算符(+ - * / %)

public class Demo01 {
    public static void main(String[] args) {

        //二元运算符 + - * / %
        int a = 10;
        int b = 20;
        int c = 31;
		
        System.out.println(c%a);//1  %取余 31/10商3余1 反过来 10/31商0余本身10
        System.out.println(a+b);//30
        System.out.println(c-b);//11
        System.out.println(a*b+c);//231
        
        System.out.println(a/b);
        //0 原本输出的结果应该是0.5,但因为a/b得到的是int类型的数,所以自动取整结果为0
        System.out.println(a/(double)b);//0.5 正确写法

    }

}
public class Demo02 {
    public static void main(String[] args) {

        long a = 11111111114444L;
        int b = 123123;
        short c = 12;
        byte d = 2;
        double e = 1.0;

        System.out.println(a+b); // a+b为long类型
        System.out.println(b+c); // b+c为int类型
        System.out.println(c+d); // c+d为int类型
        System.out.println(e+d); // e+d为double类型

        //总结:基本类型运算时会自动向上转型,一般转型为参与运算的数中范围更大的类型,但有特例:byte+short为int
    }

}

算术运算符(++ --)

public class Demo03 {
    public static void main(String[] args) {

        //a++ 和 ++a 都是 a = a + 1; 但a++是先赋值再自增,而++a先自增再赋值
        int a = 3;
        System.out.println(a++);//3  赋值未自增,执行完这行代码后自增,故再调用时会+1
        System.out.println(++a);//5  自增后赋值,由于是第二次调用a++也已经自增,故自增两次
    }

}

总结:先++和后++本质上都是在原有基础上+1,但先++会先进行自增再赋值,后加++则相反

赋值运算符(=)

public class Demo04 {
    public static void main(String[] args) {
        //赋值运算符=,a=b 意为将b的值赋给a
        int a = 10;
        int b = 20;

        System.out.println(a=b); //20
    }
}

关系运算符

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


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

}

逻辑运算符

public class Demo06 {
    public static void main(String[] args) {
        // 与(and) 或(or) 非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println((b&&a));//false    逻辑与运算:两个变量都为真,结果为true
        System.out.println((b||a));//true    逻辑或运算:两个变量其中一个为真,结果才为true
        System.out.println(!(b&&a));//true    结果为真,则变为假,如果为假则变为真

        /*
        拓展:短路运算
            判断 a&&b时,如果a为false,则程序不会执行b
         */

        int c = 5;
        boolean d = (c<4) && (c++<5);   //因为c<4为false,所以c++没有执行,c仍为5

        System.out.println(d);//false
        System.out.println(c);//5

    }
}

posted @ 2020-11-13 20:59  IAimHigher  阅读(132)  评论(0)    收藏  举报