- 逻辑与(&&)、或(||)、非(!)
示例:
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 = 0011 1101 //位或运算
A^B = 0011 0001 //异或运算,不同为1
~B = 1111 0010 //位非运算
面试题:如何快速计算2*8?
分析:2*8 = 16 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); //输出结果10
//字符串连接符 + String
System.out.println(a+b);//输出结果30
System.out.println(""+a+b);//输出结果1020
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 = 50;
String type = score < 60 ?"不及格":"及格";//输出结果“不及格”;必须掌握,类似if语句
System.out.println(type);
}
}