day06
运算符
- 算数运算符:+ , - , * , % , ++ , --
- 赋值运算符 =
- 关系运算符 > , < , >= , <= , == , != , instanceof
- 逻辑运算符 && , || , !
- 位运算符 & , | , ^ , ~ , >> , << , >>> (位运算符了解)
- 条件运算符 ? :
- 扩展赋值运算符 += , -= , *= , /=
1.算数运算符:+ , - , * , % , ++ , --
int a = 10;
int b = 20;
System.out.println(a+b); //30
System.out.println(a-b); //-10
System.out.println(a*b); //200
System.out.println(a/b); //0
System.out.println(a%b); //0 取余,模运算
System.out.println(a/(double)b); //0.5
// ++ -- 自增自减 一元运算符
int a = 3;
int b = a++; //先把a值赋值给b,a在自增
System.out.println(a); //a=4,b=5
int c = ++a; //a先自增,再把值赋给b
System.out.println(a); //a=5;c=5
System.out.println(b);
System.out.println(c);
//幂运算 2^3 = 2*2*2 很多运算,会使用工具类来操作
double pow = Math.pow(2,3); //Math类有很多函数可以用,其中Math.pow 则代表幂运算
System.out.println(pow);
2. 赋值运算符: =
long a = 24115545245L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d); //有高级变量类型如 Long double等参与基础运算则输出结果为高级变量
System.out.println(b+c+d);
System.out.println(c+d); //其余基础运算输出结果为int,即使没有int变量参与
3.关系运算符
int a = 10;
int b = 20;
int c = 22; //关系运算符 < > == != 结果为正确或错误,用布尔值存放
System.out.println(a>b); //false
System.out.println(a<b); //true
System.out.println(a==b); //false
System.out.println(a!=b); //true
4. 逻辑运算符 && || !
//与(and &&)或 (or ||) 非(not!)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b)); //false 与运算:两个都为真才真
System.out.println("a || b:"+(a||b)); //true 或运算:一个为真则真
System.out.println("!(a && b):"+!(a&&b)); //true 非运算:真则为假,假则为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<5);
System.out.println(d); //false
System.out.println(c); //输出c为5 说明在判断c<4为假后,直接得出与运算结果为假,并没有执行后面的c++
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 0100 4
0000 1000 8
System.out.println(2<<3); //16
*/
6.条件运算符 ?:
// ?: x?y:z
//如果x为真,则结果为y,否则结果为z
int score = 80;
String type = score<60 ? "不及格" : "及格"
System.out.println(type); //及格
7. 扩展赋值运算符
int a = 10;
int b = 20;
a+=b; //a=a+b;
a-=b; //a=a-b;
a*=b; //a=a*b;
System.out.println(a);
//字符串连接符 +,String
System.out.println(""+a+b) //1020
System.out.println(a+b+""); //30