二元运算符
package operator;
//二元运算符
public class Demo01 {
public static void main(String[] args) {
//ctrl+d 复制当前行到下一行
int a=10;
int b=20;
int c=30;
int d=40;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//0 int型取整数部分0 应转换int为double
System.out.println(a/(double)b);//0.5
System.out.println("==========================================");
byte e=8;
short f=10;
int g=123;
long h=1234567890;
System.out.println(e+f);//自动升型到int
System.out.println(f+g);//自动升型到int
System.out.println(g+h);//自动升型到long
System.out.println("==========================================");
}
}
关系运算符
package operator;
//关系运算符
public class Demo02 {
public static void main(String[] args) {
//关系运算符返回结果是布尔值 true false
int a=1;
int b=2;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
取余
package operator;
//取余
public class Demo03 {
public static void main(String[] args) {
int a=10;
int b=21;
System.out.println(b%a);
}
}
医院运算
package operator;
//一元运算符
public class Demo04 {
public static void main(String[] args) {
int a=1;
System.out.println(a);//1
int b=a++;//执行这行代码后 先给b赋值 a再自增
System.out.println(a);//2
System.out.println(b);//1
int c=++a;//执行这行代码前 a先自增 再给c赋值
System.out.println(a);//3
System.out.println(b);//1
System.out.println(c);//3
System.out.println("===============================");
//幂运算 2^3
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
逻辑运算
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//&&且 ||并 !非
boolean a=true;
boolean b=false;
System.out.println(a&&b);//false a真 b假 a且b为假
System.out.println(a||b);//true a真 b假 a并b为真
System.out.println(!(a&&b));//true 取反 ()内为真则返回结果为假
System.out.println(!(a||b));//false
//短路运算
int c=10;
boolean d=(c>10)&&(c++>10);
System.out.println(c);//c++未运算返回结果为10
System.out.println(d);//false &&运算下 c>10为false则后面c++>10不进行运算
}
}
位运算
package operator;
//位运算
public class Demo06 {
public static void main(String[] args) {
/*
A=0011 1100
B=0011 1101
A&B=0011 1101 对应位均为1则为1 否则就是0
A|B=0011 1101 对应位均为0则为0 否则就是1
A^B=0000 0001 对应位相同则为0 否则为1
~B=1100 0010 取反
*/
//2*8=16 怎么运算最快
//<< 代表*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);
}
}
拓展复制运算符
package operator;
//拓展赋值运算符
public class Demo07 {
public static void main(String[] args) {
int a=1;
int b=2;
a+=b;
System.out.println(a);//a+=b 表示a=a+b
a-=b;
System.out.println(a);//a-=b 表示a=a-b
System.out.println("==========================================");
//字符串连接符 +
System.out.println(""+a+b);//String类型在前面 就会按String类型连接!!!
System.out.println(a+b+"");
}
}
三元运算符
package operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
//x?y:z 表示如果x为true返回结果为y否则为z
int age=22;
String type=age>=18?"成年":"未成年";//!!!
System.out.println(type);
}
}
运算符优先级
package operator;
//运算符优先级
public class Demo09 {
public static void main(String[] args) {
int a=10;
int b=20;
int c=30;
int d=21;
System.out.println(a+b*c);//乘除法优先与加减法
System.out.println(a+b/a);//乘除法优先与加减法
System.out.println((a+b)*c);//()内优先计算
System.out.println(a-d%b);//%优先于-
System.out.println(b+d%b);//%优先于+
System.out.println(a*d%b);//从左往右
System.out.println(d%b*a);//从左往右
}
}