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);
System.out.println(b);
//a = a + 1
int c = ++a;//执行完这行代码前,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 2*2*2 = 8 很多运算,会使用一些工具类来操作
double pow = Math.pow(3, 2);//Meth.pow(2,3);Alt+回车
System.out.println(pow);
}
逻辑运算符
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));//逻辑运算:两个变量都为真,结果才为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);
}
}
位运算
package operator;
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 A乘B A与 B
A|B = 0011 1101 A或B
A^B = 0011 0001 取反 相同为0否则为1
~B = 1111 0010 取反 取B相反的数
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);
}
}
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
System.out.println(a+b+""); //正常运算
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 = 80;
String type = score <60 ?"不及格":"及格";//必须掌握
// if
System.out.println(type);
}
}