運算符
算數運算符:+,-,*,%,++,--
指派運算符:=
關系運算符:>,<,>=,<=,==,!=instanceof
邏輯運算符:&&,||,!
位運算符:&,|,^,~,>>,<<,>>>(了解!!!)
條件運算符:?:
擴充指派運算符:+=,-=,*=,/=
任何數與long類型進行運算操作(加減乘除之類)結果都是long類型。如果沒有long,結果都為int
同理運算裡有double,結果也為double
關系運算符傳回布爾值,結果:正确、錯誤。
清楚++a,a++,--a,a--
例:計算2的三次方,2^3
需要調用數學函數,很多運算會使用一些工具類操作
double pow = Math.pow(2,3);
System.out.println(pow);
邏輯運算符
&& || !
與 或 非
&&:兩個變量都為真,結果為真。隻要有一個變量為假,結果為假
||:隻要有一個變量為真,結果為真。兩個為假,結果為假
! :真邊假,假變真
短路運算:
若a=false,則判斷a&&b時,不會運作b
例:
public class Day4 {
public static void main(String[] args) {
int a=5;
boolean b=(a<5)&&(a++<5);
System.out.println(b);
System.out.println(a);
}
}
結果:false 5
證明,在與運算中,第一個變量為假,則不會判斷第二個變量,直接輸出結果為假
A = 0011 1100
B = 0000 1101
A&B=0000 1100 //都為1,才落1。否則就落0
A|B= 0011 1101 //隻要有1就落1。
A^B=0011 0001 //上下相同落0,不同落1
~B =1111 0010 //0變1 ,1變0
左移<< 相當于把數字乘二 *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。
如果輸出的數前面是字元串+ 後面的。那麼後面的數都被轉換成字元串連接配接。
例如:
字元串在前面,後面都轉為字元串
字元串在後面,前面依舊運算。
x ? y : z
如果x==true,則結果為y,否則結果為z
例如:
int score = 80;
String type = score<60?"不及格":"及格";
System.out.println(type);
//結果:及格
<col>
優先級
1
()
2
! +(正) -(負) ++ --
3
* / %
4
+(加) -(減)
5
< <= > >=
6
== !=
7
^
8
&&
9
||
10
?:
11
= += -= *= /= %=