一、邏輯運算子與或異或非雙與雙或
&邏輯與:有false則false。
|邏輯或:有true則true。
^邏輯異或:相同為false,不同為true。
!邏輯非:非false則true,非true則false。
&&和&的區別?
* a:最終結果一樣。
* b:&&具有短路效果。左邊是false,右邊不執行。
* &是無論左邊是false還是true,右邊都會執行
||和|的區別?
* a:最終結果一樣。
* b:||具有短路效果。左邊是true,右邊不執行。
* |是無論左邊是false還是true,右邊都會執行
二、位運算子
* &,|,^,~ 的用法,針對的是二進位制
* &:有0則0
* |:有1則1
* ^:相同則0,不同則1
* ~:按位取反
舉例:6&3 = 110 &011 = 010 = 2
其中~比較特殊,比如~6 = -7;因為6是int值,32位二進位制,先按位取反,得到結果的補碼,然後-1得反碼,再除了符號位不變取反,得結果的原碼,轉為十進位制即-7。
6的二進位制 00000000 00000000 00000000 00000110
按位取反 11111111 11111111 11111111 11111001
-1 11111111 11111111 11111111 11111000補碼
除符號位取反10000000 00000000 00000000 00000111 = -7
>>,>>>,《的用法:
* <<:左移 左邊最高位丟棄移動位數,右邊補齊0
* >>:右移 最高位是0,左邊補齊0;最高為是1,左邊補齊1
* >>>:無符號右移 無論最高位是0還是1,左邊補齊0
* 整數向左移動幾位,乘以2的幾次冪;向右移動幾位除以2的幾次冪
三元運算子的格式
(關係表示式) ? 表示式1 : 表示式2;前面是乙個判斷,後面兩個是根據判斷的結果。
switch語句小知識點:
* a:case後面只能是常量,不能是變數,而且,多個case後面的值不能出現相同的
* b:default可以省略嗎?
* 可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
* 特殊情況:
* case就可以把值固定。
* a,b,c,d
* c:break可以省略嗎?
* 最後乙個可以省略,其他最好不要省略
* 會出現乙個現象:case穿透。
* 最終我們建議不要省略
* d:default一定要在最後嗎?
* 不是,可以在任意位置。但是建議在最後。
* e:switch語句的結束條件
* a:遇到break就結束了
* b:執行到switch的右大括號就結束了
邏輯運算子複習
與 是具有短路性質,當按優先順序順序計算到當前表示式時,表示式的結果可以確定整個表示式的結果時,便不會繼續向後進行判斷和計算,而直接返回結果。例如 當使用 邏輯運算子時,在兩個運算元都為 true 時,結果才為 true,但是當得到第乙個操作為 false 時,其結果就必定是 false,這時候就不...
java邏輯運算子
什麼是邏輯運算子?就是讓我們的條件多組合在一起,一次組合多個條件,然後再運算最後的邏輯值是否滿 足要求,說白了邏輯運算子就是多個選擇或者多個要求。邏輯運算子有 與 或 非 與 的意思就是同時的意思,必須要求兩邊都為true才為true如 10 12 100 100 問一下那邊 和這邊是不是為真如果都...
Java邏輯運算子
假設布林變數a為真,變數b為假 稱為邏輯與運算子。當且僅當兩個運算元都為真,條件才為真。a b 為假。稱為邏輯或操作符。如果任何兩個運算元任何乙個為真,條件為真。a b 為真 稱為邏輯非運算子。用來反轉運算元的邏輯狀態。如果條件為true,則邏輯非運算子將得到false。a b 為真。當使用與邏輯運...