自增,自减运算符
package operator;
//++ -- 自增,自减 两种用法相同
public class Demo02 {
public static void main(String[] args) {
int a = 10;
//++a相当于先执行a=a+1再输出c
int c = ++a;
//a++相当于先输出b再执行a=a+1
int b = a++;
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 2*2*2 借用一些数学工具进行运算
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
逻辑运算符,位运算符
package operator;
public class Demo03 {
public static void main(String[] args) {
//与()或()非()
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 i = 8;
boolean d = (i>9)&&(i++<9);//i>9,
System.out.println(i);//是错的,后面就不会进行,输过为8
System.out.println(d);//false
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 两个都为1取1,其他情况取0
A|B = 0011 1101 两个都为0取0,其他情况取1
A^B = 0011 0011 两个相同取0,不同取1
~B = 1111 0010 取相反数
2*8=16 如何快速计算?
<< 向左移动一位 >> 向右移动一位
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
}
}
三元运算符
package operator;
public class Demo04 {
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+"");
//如果字符串在后面则会依旧进行运算
//三元运算符?:
//x?y:z
//如果x==true,则为y,否则为z
int score = 80;
String type = score <60?"不及格":"及格";
System.out.println(type);
}
}