目錄
運算符分類
算術運算符
/:除法
%:取餘運算符
+:加号
++,--自增自減運算符
指派運算符
關系運算符
邏輯運算符
基本規則
邏輯運算符&&與&,||與|的差別
三元運算符
位移運算符
左移運算符<<和右移運算符>>
無符号右移>>>
額外的運算符知識
概念:對常量和變量進行操作的符号
運算符分類
算術運算符,指派運算符,關系運算符,邏輯運算符,三元運算符
優先級:算數運算符>關系運算符>邏輯運算符
算術運算符
算數運算符 含義 + 正号 - 負号 + 加 - 減 * 乘 / 除(即算數中整數的結果) % 取模(即算術中的求餘數) ++ 自增(前) ++ 自增(後) – 自減(前) – 自減(後) /:除法
整數相除隻能得到整數,要想得到小數,就必須有浮點數參與運算,比如3/4=0,而3/4.0=0.75%:取餘運算符
得到的是兩個相除資料的餘數,結果的餘數符号是跟被模數的符号一緻的
例如:12%5=2 -12%5=-2 12%-5=2 -12%-5=-2
使用場景: %:判斷兩個資料是否整除。
+:加号
加号在Java中有兩種功能:
- 就是數學上普通的加号,做數字相加
- 要是加号兩邊有一邊是字元串,則做連接配接符,用于拼接出新的字元串
++,--自增自減運算符
對變量做加1或者減1的操作
單獨使用的時候,++或者--無論是放在變量的前面還是後面,結果是一樣的
參與操作的時候:
如果++或者--在變量的後面,先拿變量參與操作,後變量做++或者--
如果++或者--在變量的前面,先變量做++或者--,後拿變量參與操作
指派運算符
基本的指派運算符:=
擴充的指派運算符:+=,-=,*=,/=,%= 隐含了強制類型轉換
舉例:+= 把左邊和右邊的資料進行運算,最後指派給左邊。左邊的隻能是變量
Int a=10;
a+=10; 等同于 a=(a的資料類型)(a+10);
a最後的結果等于20
關系運算符
==,!=,>,>=,<,<=
關系運算符的結果都是boolean型,也就是要麼是true,要麼是false
邏輯運算符
&,|,^,!,&&,||
用法:邏輯運算符一般用于連接配接boolean類型的表達式或者值。
表達式:就是用運算符把常量或者變量連接配接起來的符合java文法的式子
算術表達式:a + b
比較表達式:a == b(條件表達式)
基本規則
&邏輯與:有false則false。
|邏輯或:有true則true。
^邏輯異或:相同為false,不同為true。
!邏輯非:非false則true,非true則false。
邏輯運算符&&與&,||與|的差別
A:&&和&的差別?
a:最終結果一樣。
b:&&具有短路效果。左邊是false,右邊不執行。
&是無論左邊是false還是true,右邊都會執行
B:||和|的差別?
a:最終結果一樣
b:||具有短路效果.左邊是true,右邊不執行
|是無論左邊是false還是true,右邊都會執行
三元運算符
格式
(關系表達式)?表達式1:表達式2;
如果條件為true,運算後的結果是表達式1;
如果條件為false,運算後的結果是表達式2;
條件表達式是boolean類型,表達式1和表達式2必須是可以統一成一個類型的結果,因為必須要有一個統一類型去接收結果,如果表達式1是int類型,而表達式2是String類型,就無法定義到底要什麼類型來接收結果,如果一個是int,一個是double,則可以定義結果為double來接收
例如:判斷一個成績,輸出優秀、及格還是不及格,要求:使用三目運算符完成
Int score = 99;
String result = score>80?"優秀":score>60?"及格":"不及格";
位移運算符
左移運算符<<和右移運算符>>
結論:
- 位運算符操作的都是整型的資料
- <<:在一定範圍内,每向左移一位,相當于乘以2
>>:在一定範圍内,每向右移一位,相當于除以2
最好我們把要位移的資料進行二進制展示,再做左移或者右移操作,左移最低位補0,而右移要看原來數字最高位是1還是0,如果是負數,最高位為1,則空缺位補上1,如果是整數,最高位是0,則空缺位補上0,這樣就知道最後移動後到底得到的數是多少
無符号右移>>>
被移資料的二進制最高位無論是0或者是1,空缺位都用0補
額外的運算符知識
圖中的1就相當于true,0就相當于false