003-運(yùn)算符&程序流程控制語句-筆記

位運(yùn)算符
~(按位取反):就是針對(duì)這個(gè)二進(jìn)制數(shù)據(jù),所有的0變1,1變0.
比如:

public class OperatorDemo1 {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        System.out.println(a & b);//0
        System.out.println(a | b);//7
        System.out.println(a ^ b);//7
        System.out.println(~b);//-5
    }
}

b:00000000 00000000 00000000 00000100
~按位取反,得
(補(bǔ)碼) 11111111 11111111 11111111 11111011
(反碼) 11111111 11111111 11111111 11111010
(原碼) 10000000 00000000 00000000 00000101
即為-5

"<<" 左移:左邊高位舍棄,右邊空出來的用0補(bǔ)齊。
">>" 右移:如果最高位是0,左邊被移空的位就填入0;如果最高位是1,左邊被移空的位就填入1。
">>>" 無符號(hào)右移
向左移動(dòng)或向右移動(dòng),其實(shí)就是把數(shù)據(jù)增大或縮小2的制定次冪。

public class OperatorDemo2{
    public static void main(String[] args) {
        
        //<<左移
        System.out.println(16<<2);
        //16*2^2 = 64
        
        //>>右移
        System.out.println(16>>2);
        
        //>>>無符號(hào)右移
        System.out.println(16>>>2);
    }
}

練習(xí)1:請(qǐng)用最高效率寫出2乘以8這個(gè)式子。

public class OperatorDemo3 {
    public static void main(String[] args) {
        System.out.println(2<<3);
    }
}
/*output:
  16
*/

練習(xí)2:請(qǐng)把兩個(gè)數(shù)據(jù)交換,int a = 10,int b =20。

public class OperatorDemo4 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int temp = a;
        a = b;
        b = temp;
        System.out.println(" a = " + a);
        System.out.println(" b = " + b);
    }
}
/*output:
   a = 20
   b = 10
*/

練習(xí)2第二種方法:
使用^(位運(yùn)算符)
特點(diǎn):一個(gè)數(shù)據(jù)對(duì)同一個(gè)數(shù)據(jù)^(位運(yùn)算兩次),數(shù)據(jù)不變。

public class OperatorDemo5 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a = a ^ b;
        b = a ^ b;//a ^ b ^ b = a
        a = a ^ b;//a ^ a ^ b = b
        System.out.println(a + "***" + b);
    }
}
/*output:
   a = 20
   b = 10
*/

條件運(yùn)算符(三元運(yùn)算符)
表達(dá)式:

(條件表達(dá)式)?表達(dá)式1:表達(dá)式2;

//注意:條件表達(dá)式說明這里將來只能是結(jié)果為true或false的表達(dá)式。

如果表達(dá)式為true,則表達(dá)式1為結(jié)果;
如果表達(dá)式為false,則表達(dá)式2為結(jié)果。

public class OperatorDemo6 {
    public static void main(String[] args) {
        int x = 100;
        int y = (x > 50) ? 100 : 200;
        System.out.println(y);//output:100
        
        //復(fù)雜點(diǎn)
        int z = (x > 200) ? (y <40 ? 100 : 200) : (y > 100 ? 300 : 400);
        System.out.println(z);//output:400
    }
}

流程控制語句

  • 順序結(jié)構(gòu)
  • 選擇結(jié)構(gòu)
  • 循環(huán)結(jié)構(gòu)

選擇結(jié)構(gòu):if語句
格式一:

if (條件表達(dá)式) {
    語句體
}
//如果條件表達(dá)式返回值為true,則執(zhí)行語句體;false則什么都不做。

可不可以不寫{}呢?我們?cè)囈幌拢?/p>

public class IfDemo {
    public static void main(String[] args) {
        int x = 20;
        if (x > 100)
            System.out.println("Hello");
            System.out.println("World");
    }
}
/*
output:World
*/

運(yùn)行結(jié)果證明if語句后不寫{}可以運(yùn)行,但它只能控制后面的第一條語句,如想控制多條,必須加{}。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本章將會(huì)介紹 模塊和源文件訪問級(jí)別訪問控制語法自定義類型子類常量、變量、屬性、下標(biāo)構(gòu)造器協(xié)議擴(kuò)展泛型類型別名位運(yùn)算...
    寒橋閱讀 1,000評(píng)論 0 2
  • 高級(jí)運(yùn)算符(Advanced Operators) 本文參考自蘋果官方文檔Advanced Operators本頁...
    果啤閱讀 1,704評(píng)論 1 5
  • 高級(jí)運(yùn)算符 文檔地址 作為 基本運(yùn)算符 的補(bǔ)充,Swift 提供了幾個(gè)高級(jí)運(yùn)算符執(zhí)行對(duì)數(shù)傳值進(jìn)行更加復(fù)雜的操作。這...
    hrscy閱讀 913評(píng)論 0 2
  • 1 關(guān)鍵字 1.1 關(guān)鍵字的概述 Java的關(guān)鍵字對(duì)java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù)類型,或...
    哈哈哎呦喂閱讀 782評(píng)論 0 0
  • 自從訂閱得到專欄,發(fā)現(xiàn)學(xué)習(xí)社區(qū)多了,自己很注重學(xué)習(xí),注重時(shí)間的流失。再學(xué)習(xí)社區(qū)里也發(fā)現(xiàn)了很多優(yōu)秀人才,讀了寫的文章...
    啊貴閱讀 168評(píng)論 0 0

友情鏈接更多精彩內(nèi)容