康复训练Day05

基本运算符

算术运算符:+, -, *, /, %, ++, --
赋值运算符:=
关系运算符:>, <, >=, <=, ==, !=, instanceof
逻辑运算符:&&, ||, !
位运算符:&, |, ^, ~, >>, <<, >>> (了解)
条件运算符:?, :
扩展赋值运算符:+=, -=, *=, /=

算术运算符

//二元运算符
	int a = 10;
	int b = 20;
	int c = 25;
	int d = 25;

	System.out.println(a+b);
	//30
	System.out.println(a-b);
	//-10
	System.out.println(a*b);
	//200
	System.out.println(a/(double)b);
	//0.5
    System.out.println(c%a);// 21 / 10 = 2 ... 1
	//1
//++ -- 自增,自减 一元运算符
	int a = 3;
	
	int b = a++;
	//执行完这行代码后,先给b赋值,再自增
	//b = a;
	//a = a + 1;
	System.out.println(a);
	//4
	int c = ++a;//执行完这行代码前,先自增,再给c赋值
	//a = a + 1;
	//c = a;

	System.out.println(a);
	//5
	System.out.println(b);
	//3
	System.out.println(c);
	//5
//幂运算 2^3   2*2*2 = 8
	double pow = Math.pow(2,3);
	System.out.println(pow);
	//8
	long a =123123123123123L;
	int b =123;
	short c =10;
	byte d =8;

	System.out.println(a+b+c+d);
	//123123123123264,Long
	System.out.println(b+c+d);
	//141,int
	System.out.println(c+d);
	//18,int

	//System.out.println((String)(c+d));
	//Inconvertible types; cannot cast 'int' to 'java.lang.String'

关系运算符

//关系运算符返回的结果:正确,错误(通过布尔值表示)

    int a = 10;
    int b = 20;
    int c = 21;

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

逻辑运算符

//逻辑运算符
    //与(and) 或(or) 非(取反)
    boolean a = true;
    boolean b = false;

    System.out.println("a && b: "+(a&&b));
    //逻辑与运算:全真为真,有假即假
	//false
    System.out.println("a || b: "+(a||b));
    //逻辑或运算:有真即真,全假为假
	//false
    System.out.println("! (a && b): "+!(a&&b));
    //逻辑非运算:真变假,假变真
	//true

//短路运算
    int c = 5;
    boolean d = (c<4)&&(c++<4);
    System.out.println(d);
	//false
    System.out.println(c);
	//c++<4未执行
	//5

位运算符

/*
	A = 0011 1100
	B = 0000 1101
------------------------
  A&B = 0000 1100
  A|B = 0011 1101
  A^B = 0011 0001
   ~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
 */
	System.out.println(2<<3);
	//16

扩展赋值运算符

    int a = 10;
    int b = 20;

    a+=b;//a = a + b;
    System.out.println(a);
	//a=30

    a-=b;//a = a - b;
    System.out.println(a);
	//a=10

//字符串连接符    +
    System.out.println(""+a+b);
	//1020
	System.out.println(a+b+"");
	//30
    System.out.println(a+b+" "+a+b);
	//30 1020

条件运算符

// 三元运算符
	// x ? y : z
	// 如果x == true,则结果为y,否则为z

	int score = 80;
	String type = score < 60 ? "不及格" : "及格";
	//if(score < 60)
	System.out.println(type);
	//及格

运算符优先级

优先级 运算符 简介 结合性
1 [ ].( ) 方法调用,属性获取 从左向右
2 !~++-- 一元运算符 从右向左
3 */% 乘、除、取模(余数) 从左向右
4 +- 加减法 从左向右
5 <<>>>>> 左位移、右位移、无符号右移 从左向右
6 <<=>>=instanceof 小于、小于等于、大于、大于等于,对象类型判断是否属于同类型 从左向右
7 ==!= 2个值是否相等,2个值是否不等于。 从左向右
8 & 按位与 从左向右
9 ^ 按位异或 从左向右
10 | 按位或 从左向右
11 && 短路与 从左向右
12 || 短路或 从左向右
13 ? : 条件运算符 从右向左
14 =+=-=*=/=%=&=|=^=<<=>>=>>= 混合赋值运算符 从右向左