运算操作2
1,自增 自减
package operator;
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 ,自减 一元运算符
int a = 3;
int b = a++;
int c = ++a;
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//幂运算 2^3 2*2*2=8
double pow = Math.pow(2, 3); //Alt + Enter
System.out.println(pow);
}
}
2,逻辑运算符
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));//逻辑与运算:两个变量都为真,结果才为真
System.out.println("!(a && b):"+!(a&&b));//或运算,两个变量一个为真,结果就为真
System.out.println("a || b:"+(a||b));// 如果是真,则变为假,如果是假则为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++>4);
System.out.println(d);
System.out.println(c);
}
}
3,位运算
package operator;
//位运算
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 上下同时为1,才为1
A|B = 0011 1101 上下同时为0,才为0
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);//2^3=16
}
}
4,连接符
package operator;
//连接符
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类型,就会把另一侧也变成string类型
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
}
}
5,三元运算符
package operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y :z
//如果x为true,则结果为y,否则结果为z
int score = 80;
String type = score <60 ? "不及格" : "及格";
System.out.println(type);
}
}