package Operator;
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//ctrl + D:复制当前行到下一行
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 / b);//0
System.out.println(a / (double) b);//0.5
}
}
package Operator;
public class Demo02 {
public static void main(String[] args) {
long a = 123123123123L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a + b + c + d);//123123123264 long
System.out.println(b + c + d);//141 int
System.out.println(c + d);//18 int
//cast:转换
}
}
package Operator;
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确、错误 布尔值
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
System.out.println(c % a);//22/10=2...2 % 取余:模运算
}
}
package Operator;
public class Demo04 {
public static void main(String[] args) {
// ++ -- 自增、自减
int a = 3;
int b = a++;//执行完这行代码后,先给b赋值,再自增
//a = a + 1
System.out.println(a);//4
//a = a + 1
int c = ++a;//执行这行代码前,先自增,再给c赋值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//幂运算 2^3 = 8 2 * 2 * 2 = 8
//很多运算,会使用一些工具类来操作!
double pow = Math.pow(2,3);
System.out.println(pow);//8.0
}
}
package Operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与and 或or 非:取反
//&&:逻辑与运算:两个变量都为真,结果才为真
//||:逻辑或运算:两个变量有一个为真,结果才为真
//!:真-假 假-真
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++ < 4);
System.out.println(d);//false
System.out.println(c);//5
}
}
package Operator;
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
---------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001//相同为0,不同为1
~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
0001 0000 16
*/
System.out.println(2<<3);//16
}
}
package Operator;
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b =20;
a += b;//a = a + b
System.out.println(a);//30
a -= b;//a = a - b
System.out.println(a);//10
System.out.println("------------------------------------");
//字符串连接符,遵循前面的类型
System.out.println(a + b);//30
System.out.println(a + b+"");//30
System.out.println(""+ a + b);//1020
}
}
package Operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y : z
//如果x 为true,则结果为y,否则结果为z
int score = 60;
String type = score < 60 ? "不及格!" : "及格!";
System.out.println(type);//及格!
// if ()
}
}