Bootstrap

Java基础06

Java基础06

运算符

  1. Java语言支持如下运算符:

    • 算术运算符:+,-,*,/,%,++,–
    • 赋值运算符:=
    • 关系运算符:>,<,>=,<=,==,!=,instanceof
    • 逻辑运算符:&&,||,!
    • 位运算符:&,|,^,~,>>,<<,>>>
    • 条件运算符:?,:
    • 扩展赋值运算符:+=,-=,*=,/=
  2. 自增自减运算符 ++, –

    public class Demo {
        public static void main(String[] args){
            int a = 0;
            int b = a++; // 先将a赋值给b,再自增,所以b=0
            int c = ++a; // a先自增,再赋值给c,所以c=2
            int d = a--; // 先将赋值给d,再自减,所以d=2
            int e = --a; // a先自减,再赋值给e,所以e=0
        }
    }
    
  3. 逻辑运算符

    public class Demo {
        public static void main(String[] args){
            boolean a = true;
            boolean b = false;
            
            System.out.println(a && b);  // 与运算,两个值均为true,结果才为true,所以输出 false
            System.out.println(a || b); // 或运算,两个值有一个值为true,结果就为true,所以输出 true
            System.out.println(!(a && b)); // 非运算,如果为真则变为假,如果为假则变为真,所以输出 true
        }
    }
    
  4. 位运算

    public class Demo {
        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,不相同为1
           ~B = 1111 0010  // 非 1变0,0变1
           
           2*8 = 16 2*2*2*2
           <<  //左移 *2
           >>  //右移 /2
           */
           System.out.println(2<<3) // 2左移3位,结果输出16
        }
    }
    
  5. 扩展运算符

    public class Demo {
        public static void main(String[] args){
           int a = 10;
           int b = 20;
           a+=b; // a=a+b; 输出30
           a-=b; // a=a-b; 输出-10
           System.out.println(""+a+b) // 字符串连接符 + ,先出现String类型,则转换成String类型进行拼接,输出1020
           System.out.println(a+b+"") // 字符串连接符 + ,后出现String类型,则先计算再进行拼接,输出30
        }
    }
    
  6. 条件运算符

    public class Demo {
        public static void main(String[] args){
           // x ? y : z  
           // 如果x==true, 则结果为y,否则结果为z
           int score = 80;
           String type = score < 60 ? "不及格": "及格";
           System.out.println(type) // 输出及格 
        }
    }
    
;