邏輯操做符code
與(&&) 、或(||) 、非(!),此三個邏輯操做符的兩邊都必須是布爾值。不可將一個非布爾值當作布爾值在邏輯表達式中使用(C/C++能夠)。it
按位操做符數據類型
與 (&)、或(|)、非(~)、 異或(︿),按位操做符用來操做整數基本數據類型中的單個「比特」(bit),即二進制位。二進制
對於布爾值,按位操做符具備與邏輯操做符相同的效果,只是它們不會中途「短路」。所謂的「短路」,就是當前面不知足條件時,後面的不會繼續執行。 好比數據
int i =0; if(5<4&&(6>i++)){}//① System.out.println("i="+i); if(5<4 & (6>i++)){}//② System.out.println("i="+i); if(5>4||(6>i++)){} System.out.println("i="+i); if(5>4 | (6>i++)){} System.out.println("i="+i);
輸出結果:co
i=0
i=1
i=1
i=2
在①中 當5<4判斷的結果爲false時,&& 就不會再進行後面的(6>i++) 判斷了。可是在②中不管是5<4判斷結果是ture或者false ,他都會繼續執行(6>i++) 的判斷。因此在①後輸出的i=0,②後i=1。