运算符

27 阅读2分钟
public class Demo01 {
    public static void main(String[] args) {
//        int num1 = 100;
//        int num2 = 2;
//        num1 %= num2;
//        System.out.println(num1);
//        byte num3 = 3;
//        int num4 = 23;
////        num3 += num4;   // 在使用+=之类的运算符进行赋值时,强制类型转换会自动完成
////      等价于
//        num3 = (byte) (num3 + num4);
//        System.out.println(num3);

//        int num1 = 100;
//        int num2 = 97;
////        char num3 = 'a';
////        char num3 = 0b1100001;
//        char num3 = 97;
//        float num4 = 1.1f;
//        double num5 = 1.1;
//
//        System.out.println(num4 < num5);
//
//        System.out.println(num1 == num2);   // false
//        System.out.println(num1 != num2);   // true
//
//        System.out.println(num2 == num3);   // true
//        System.out.println(num2 != num3);   // false
//
//        System.out.println(num4 == num5);   // true  false
//        System.out.println(num4 != num5);   // false true

//        boolean b1 = true;
//        boolean b2 = false;
//        boolean b3 = true;
//        boolean b4 = false;
//
//        System.out.println(!b1);
//        System.out.println(!b2);
//        System.out.println("=======================");
//
//
//        System.out.println(b1 ^ b2); // true
//        System.out.println(b1 ^ b3); // false
//        System.out.println(b4 ^ b2); // false
//        System.out.println("=======================");
//
//        System.out.println(b1 & b2); // false
//        System.out.println(b1 & b3); // true
//        System.out.println(b1 && b2); // false
//        System.out.println(b1 && b3); // true
//
//        System.out.println("=======================");
//
//        System.out.println(b1 | b2); // true
//        System.out.println(b1 | b3); // true
//        System.out.println(b2 | b4); // false
//        System.out.println(b1 || b2); // true
//        System.out.println(b1 || b3); // true
//        System.out.println(b2 || b4); // false


        int num1 = 1;
        int num2 = 1;
        int num3 = 1;
        boolean b1, b2;

        /*
         * 短路与(或):从左往右,只要有1个表达式A的值能够决定整个表达式的值,则A后面的表达式全部不运算
         *
         * */
        b1 = num1 > 1 || num2++ > 1;
        System.out.println(b1);
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
    }
}

运算符的优先级

  1. 当你不确定运算符的优先级时,请多使用(),把需要结合在一起的表达式括起来。
  2. 在实际生产中,尽量不要写很复杂的,很不好辨认的语句。

逻辑运算符

用于对布尔型的数据进行操作,其结果仍是一个布尔值

  • & 与

  • | 或

  • ^ 异或

  • ! 非

  • && 短路与

  • || 短路或

比较运算符

用于对两个数值或变量进行比较操作,返回的结果是布尔值(true, flase)

  1. == 判断两个操作数是否相等, 不要写成=
  2. != 判断两个操作数是否不相等 !不要写成!
  3. < 略
  4. <=
  5. =

赋值运算符

将常量、变量或表达式的值赋给某一个变量。

  • += i+=j 等价于 i = i+j

  • -= i-=j 等价于 i = i-j

  • = i=j 等价于 i = i*j

  • /= i/=j 等价于 i = i/j

  • %= i%=j 等价于 i = i%j

注意

1.在Java中可以通过一条赋值语句对多个变量进行赋值;

int num1, num2, num3;

num1 = num2 = num3 = 100;

int num1 = 100; int num2 = 100; int num3 = 100;

int num1 = num2 = num3 =100; 这个是错误写法