运算符
Java语言支持如下运算符:
- 算术运算符:+,-,,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==, != instanceof
- 逻辑运算符: &&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解! ! !)
- 条件运算符 :?:
- 扩展赋值运算符:+=,-=,*=,/=
//二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / (double) b);
System.out.println("============================");
long e = 123123123L;
int f = 123;
short g = 10;
byte h = 8;
System.out.println(e + f + g + h);//Long
System.out.println(f + g + h);//Int
System.out.println(g + h);//Int
System.out.println("============================");
//关系运算符返回的结果: 正确,错误 布尔值
//if
int i = 10;
int j = 20;
int k = 21;
//取余,模运算
System.out.println(k % i);//k / i 21/10=2...1
System.out.println(i > j);
System.out.println(i < j);
System.out.println(i == j);
System.out.println(i != j);
运行效果
//++ -- 自增,自减 一元运算符
int a = 3;
int b = a++;//执行完这行代码后,先给b赋值,再自增
//a = a + 1
System.out.println(a);
//a = a + 1
int c = ++a;//执行完这行代码后,先给自增,再给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算2^3 2*2*2=8 很多运算,我们会使用一些工具类来操作
double pow = Math.pow(3, 2);
System.out.println(pow);
运行效果
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:" + (a && b));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:" + (a || b));//逻辑与运算:两个变量有一个为真,结果为true
System.out.println("! (a && b):" + !(a && b));//逻辑与运算:如果是真,则变为假,如果是假则变为真
//短路运算
int c = 5;
boolean d = (c < 4) && (c++ < 4);
System.out.println(d);
System.out.println(c);
运行效果
/*
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
>> /2除以2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2 << 3);
//扩展赋值运算符
int a = 10;
int b = 20;
a += b;//a=a+b
a -= b;//a=a-b
System.out.println(a);
//字符串连接符 + ,String
System.out.println("" + a + b);
System.out.println(a + b + "");
//三元运算符
//x ? y : z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格" : "及格";
//if
System.out.println(type);
运行效果