逻辑运算符 位运算符 条件运算符
逻辑运算符
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));//false 与运算 两个都为真 结果为真true
System.out.println("a || b:"+(a||b));//true 或运算 两个有一个为真 结果为真true
System.out.println("!(a && b):"+!(a&&b));//true 非运算 假为真 真为假
//短路运算 前面为错了 后面不执行
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5
}
}
位运算符
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 有1为1
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);//16
}
}
扩展运算符
package operator;
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//30 a=a+b
a-=b;//-10 a=a-b
System.out.println(a);
//字符串连接符 + , String
System.out.println(a+b); //30
System.out.println(""+a+b);//1020 连接 10 20
System.out.println(a+b+"");//30 在后面 前面进行运算
}
}
条件运算符
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);
}
}