break:跳出循環(huán)措拇,終止循環(huán)
for(int j=0;j<3;j++){
????System.out.println("j = "+j++);
????break;
????//結(jié)果 j = 0
}
continue:中止本次循環(huán),重新執(zhí)行新的循環(huán)
int i=0;
while(i<3){
i+=1;
? ? ? ? if(i<2){
? ? ? ? System.out.println("if i ="+i);
? ? ? ? continue;
? ? ? ? }
? ? ? ? System.out.println("if執(zhí)行我就不會執(zhí)行,while為真且if不執(zhí)行的時候我才執(zhí)行i="+i);
/*
結(jié)果如下:
if i =1
if執(zhí)行我就不會執(zhí)行,while為真且if不執(zhí)行的時候我才執(zhí)行i=2
if執(zhí)行我就不會執(zhí)行,while為真且if不執(zhí)行的時候我才執(zhí)行i=3
*/
}
return 函數(shù)返回慎宾,如果在循環(huán)里也相當(dāng)于退出循環(huán)儡羔,但是就算循環(huán)后面還有語句也不會執(zhí)行(不是在一個{ }里)
3/4 ?結(jié)果為0而不是0.75 ?3*1.0/4 ?結(jié)果為0.75
單獨(dú)使用自增或自減不影響其值!
比較運(yùn)算符的結(jié)果一定是boolean類型璧诵,要么為true或者為false汰蜘。
++x(--x)表示在使用x之前,先使x的值增(減)1之宿。
操作元必須是一個整型或浮點(diǎn)型變量族操。
x++(x--)表示在使用x之后,使x的值增(減)1比被。
邏輯運(yùn)算符包括
? ? ? ? ?&&色难、&、||等缀、|枷莉、!,^
其中&&、&尺迂、|笤妙、||為二目運(yùn)算符,實(shí)現(xiàn)邏輯與冒掌、邏輯或;
蹲盘!為單目運(yùn)算符,實(shí)現(xiàn)邏輯非股毫。
? 邏輯運(yùn)算符的操作元必須是boolean型數(shù)據(jù),邏輯運(yùn)算符可以用來連接關(guān)系表達(dá)式召衔。?
邏輯異或^ ? 相同為false铃诬,不同為true;
偶數(shù)次異或自己為0苍凛,奇數(shù)次異或自己還為自己趣席;偶數(shù)次異或X,結(jié)果依然為X醇蝴。
在某種特定場合下可用于數(shù)據(jù)的簡單加密吩坝。
&&與&‘區(qū)別以及||與|區(qū)別(兩者的結(jié)果是一樣的):
(建議使用&&或 || 提高性能)
二者的執(zhí)行部分可能不同:
&無論左邊結(jié)果真假,右邊的部分均執(zhí)行哑蔫。同理钉寝,| ?無論左邊結(jié)果真假,右邊部分均執(zhí)行闸迷。
&&當(dāng)左邊的結(jié)果為假時嵌纲,右邊的不再進(jìn)行處理(A);同理腥沽,當(dāng)||左邊的結(jié)果為真時逮走,右邊部分將不再執(zhí)行(B)。
&&當(dāng)左邊的結(jié)果為真時今阳,右邊的部分才進(jìn)行處理(C)师溅。||當(dāng)左邊結(jié)果為假時,右邊部分才執(zhí)行盾舌。(D)
位運(yùn)算符:(操作的單位為位墓臭,即二進(jìn)制碼)
位運(yùn)算:& ? ?1:將十進(jìn)制轉(zhuǎn)為二進(jìn)制?
? ? ? ? ? ? ? ? ? ? ? ? 2:求補(bǔ)碼(因?yàn)橛嬎銠C(jī)對數(shù)的運(yùn)算與表示均已補(bǔ)碼的方式進(jìn)行處理)
? ? ? ? ? ? ? ? ? ? ????3:進(jìn)行位與(&(與邏輯與的含義相同)Q)、位或( ?|(與邏輯或的含義相同)R)妖谴、位異或(^ 相同為假窿锉,不相同為真W)、位取反(~(取反)E)運(yùn)算
? ? ? ? ? ? ? ? ? ? ? ? 4:由補(bǔ)碼求反碼(補(bǔ)碼—1(針對負(fù)數(shù))正數(shù)的原 反 補(bǔ)碼相同 )(符號位永遠(yuǎn)保留)
? ? ? ? ? ? ? ? ? ? ? ? ?5:由反碼求原碼(保留符號位)
? ? ? ? ? ? ? ? ? ? ? ? ? 6:轉(zhuǎn)為十進(jìn)制即為輸出結(jié)果(注意符號位的正負(fù))
***
在java虛擬機(jī)中整數(shù)有byte膝舅、short嗡载、int、long四種?分別表示?8位仍稀、16位洼滚、32位、64位有符號整數(shù)技潘。整數(shù)使用補(bǔ)碼表示遥巴。
1.確定byte是1個字節(jié)千康,也就是8位。
2.最大值?0111?1111 ? ? 127
3.最小值?1000?0000挪哄。 ? —0(—128)
4.0111?1111?就是127吧秕。(補(bǔ)碼)
5.1000?0000 (補(bǔ)碼)減去1是?1111?1111?按照位取反?1000?0000?得到 ? -128
3<<2(3左移兩位)(因?yàn)?為正數(shù)琉闪,所以原反補(bǔ)碼均相同):
3的原碼::???? ? 00000000 ? 00000000 ? ?00000000 ??00000011
3的補(bǔ)碼:: ??????00000000 ? 00000000 ? ?00000000 ??00000011(1*2^1+1*2^0=3)
? ?左移2位?: (00)000000 ? 00000000 ? ?00000000 ??0000001100(補(bǔ)2個零)(1*2^1*2^2+1*2^2=12)(3*2^2=12 ? ?原數(shù)*2^左移位數(shù))
-3<<2
-3的原碼: ? ????????10000000 ? ? 00000000 ? ? ?00000000 ? ? 00000011
-3的補(bǔ)碼: ? ? ? ? ? ?11111111 ? ? ? ?11111111 ? ? ? 11111111 ? ? ? 11111101
-3左移兩位 ? ?(11)111111 ? ? ? ?11111111 ? ? ? 11111111 ? ? ? 1111110100
左移后的反碼: ? ? ?111111 ? ? ? ?11111111 ? ? ? 11111111? ? ? ?1111110011
左移后的原碼: ? ? ? 100000 ? ? ? 00000000 ? ? 00000000 ? ? 0000001100 ? (—12) ?
特殊情況:
原碼:????????????????????? 01111111? ? ? 11111111 ??11111111 ? ?11111111(=2^31-1)
補(bǔ)碼 : ? ? ? ? ? ????????? 01111111? ? ? 11111111 ??11111111 ? ?11111111(左移兩位)
?左移2位: ?(?01)11111111 ? ? ?11111111 ? ?11111111 ? ?11111100(補(bǔ)碼)
反碼: ? ? ? ? ? ? ? ? ? ? ? 11111111 ? ? 11111111 ? ?11111111 ? ?11111011
原碼: ? ? ? ? ? ? ? ? ? ? ? 1000000 ? ? 0000000 ? ? 0000000 ? ?00000100 ? (-4)
在數(shù)字沒有溢出的前提下迹炼,對于正數(shù)和負(fù)數(shù),左移一位都相當(dāng)于乘以2的1次方颠毙,左移n位就相當(dāng)于乘以2的n次方斯入。
例如11 >> 2,則是將數(shù)字11右移2位
????????0000 0000 ? ?00000000 ? ?00000000 ? 00001011
? ? ?(00)000000 ? 00000000 ? ?00000000 ? 00000010(11/2^2=2)
負(fù)數(shù)向右移兩位-4>>2 ? ? 結(jié)果位 ?—1
右移一位相當(dāng)于除2蛀蜜,右移n位相當(dāng)于除以2的n次方刻两。
無符號右移(>>>)
對于正數(shù)來說和帶符號右移相同,對于負(fù)數(shù)來說不同滴某。
—3>>> 2 ?
-3的原碼: ? ????????10000000 ? ? 00000000 ? ? ?00000000 ? ? 00000011
-3的補(bǔ)碼: ? ? ? ? ? ?11111111 ? ? ? ?11111111 ? ? ? 11111111 ? ? ? 11111101
-3右移兩位 ? ? ? ? ? ? 00111111 ? ? ? 11 111111 ? ? ?11111111 ? ? ? ?11111111(01)
右移后的反碼: ? ?? 00111111 ? ? ? 11 111111 ? ? ?11111111 ? ? ? ?11111110? ? ?
原碼 ? ? ? ? ? ? ? ? ? ? ? ? ? 01000000 ? ? ?00000000 ? ?00000000 ? ? ?0000001(1*2^30+1)