运算符
1.1二元运算符 + - * / 加减乘除
public class Demo01 {
public static void main(String[] args) {
// 二元运算符
// Ctcl +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/(double)b);
}
}
输出结果:
30
-10
200
0.5
1.2二元运算符拓展
public class Demo02 {
public static void main(String[] args) {
long a = 1215545412454L;
int b =123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d); //Long 如果有Long 一定是long 类型
System.out.println(b+c+d); // Int 如果有double 一定是double
System.out.println(c+d);// Int 如果有Int 一定是Int 类型
}
}
输出结果:
1215545412595
141
18
1.3关系运算符
public class Demo03 {
public static void main(String[] args) {
// 关系运算符返回结果 正确 错误 布尔值
//if
int a =10;
int b =20;
int c =21;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%a); //c /a 21 /10= 2 .... 1 取余 模运算
}
}
输出结果:
false
true
false
true
1
2.1自增自减运算符 、Math类
public class Demo04 {
public static void main(String[] args) {
// ++ -- 自增 自减 一元运算符
int a = 3;
int b = a++; // a++;a = a + 1; 先给b赋值,再自增
System.out.println(a);
int c = ++a; //++a a = a + 1; 先自增 再给 C赋值;
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 =8 2*2*2=8 很多运算 我们会使用一些工具类来操作!
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
注意点:1、a++;a = a + 1; 先给b赋值,再自增
2、++a a = a + 1; 先自增 再给 C赋值
输出结果:
4
5
3
5
8.0
与 或 非 && || !
public class Demo05 {
public static void main(String[] args) {
// 与 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(c);
System.out.println(d);
}
}
输出结果:
a && b:false
a || b:true
!(a && b):true
5
false
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 //与 两者都为1则是1 否则为0
A|B = 0011 1101 //或 只要一者为1 就为1 都是0 则为0
A^B = 0011 0001 //异或 两个位置都为相同 则为0 不相同 则为1
~B = 1111 0010
public class Demo06 {
public static void main(String[] args) {
System.out.println(2<<3);
2*8怎么运算最快 2*2*2*2
效率极高
/*<< *2
>> /2
0000 0000 0
0000 0000 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16*/
输出结果:
16
public class Demo07 {
public static void main(String[] args) {
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+"");
System.out.println("shabi"+a);
}
}
输出结果:
10
1020
30
shabi10
5、三元运算符
x ? y : z如果 x == true ,则结果为y ,否则结果为z
public class Demo08 {
public static void main(String[] args) {
//x ? y : z
//如果 x == true ,则结果为y ,否则结果为z
int score = 50;
String type = score<60 ?"不及格":"及格";
// if
System.out.println(type);
}
}
输出结果:
不及格
呜呜呜
今天是非常伤心的一天啊😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭