运算符(2)
Java 语言支持如下运算符
-
算术运算符:+,-,*,/,%(取余值),++,–
-
赋值运算符:=
-
关系运算符:>, <, >=,==, !=instanceof
-
逻辑运算符:&&(与),||(或),! (非)
-
位运算符:&,|,^, ~, >>, <<, >>>(了解!!!)
-
条件运算符?:
-
扩展赋值运算符:+=, -=, *=, /=
图片
逻辑运算符
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 输出结果:a && b:false
System.out.println("a || b:"+(a || b));//逻辑与运算:两个变量有一个为真,则结果才为true 输出结果:a || b:true
System.out.println("!(a && b):"+!(a && b));//如果是真,则变为假,如果是假,则变为真 因为 (a && b)=false,所以!false=取反false 输出结果:!(a && b):true
System.out.println("!(a || b):"+!(a || b));//如果是真,则变为假,如果是假,则变为真 因为 (a || b)=true,所以!true=取反true 输出结果:!(a || b):false
System.out.println("======================================");
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);//如果前面为错,则不再跑后面的,所以c++没有加1,后面输出C还是5
System.out.println(d);//输出结果:false
System.out.println(c);//输出结果:5
String type = "祝我2021安徽高职扩招上岸,万事俱备只欠东风,老天保佑。";
System.out.println(type);
}
}
位运算符
package operator;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 *A与B* 如果对应位都为1,才为1.否则就是0;
A/B = 0011 1101 *A或B* 如果对应位都是0,那么结果为0,否则为1;如果有一个为1,那么为1;
A^B = 0011 0001 *亦或* 如果这两个位置相同,则为0,否则就为1.
~A = 1100 0011 *取反* 0为1,1为0
~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);
}
}
扩展运算符
package operator;
public class Demo07 {
public static void main(String[] args) {
// += -=
int a = 10;
int b = 20;
a+=b;//a = a+b
System.out.println(a);
a-=b;//a = a-b
System.out.println(a);
//字符串连接符 + , String
System.out.println(a+b);
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 = 80;
String type = score <60?"不及格":"及格";//必须掌握
// if
System.out.println(type);
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
}
}
Java优先级符号()
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
// Java优先级 ()
}
}
## Java优先级符号()