close

 

建議可以由下往上讀 (先看結尾圖示,如果有興趣  再從頭看文章)

 

學過寫程式的人,大概都會記得,有邏輯運算元與位元運算這兩種東西

如果有印象,但是不知道我在說什麼的人可以參考 良格格的網頁上的說明

 

老實說,我在寫程式的時候,比較常用到的是邏輯運算(判斷 if else 條件),

位元運算倒是真的很少用到(聽說高手會使用這個東西來加快運算效率 or 建置平行運算)

所以如果真的要問我,位元運算可以幹嘛、要如何使用,我是真的不董

 

但是,最近我突然看到一種應用方式,覺得很有意思,也算是常見的功能

所以就記錄下,以防自己忘記

簡單的程式碼如下

 

public boolean isEven(int num){

    if( num % 2 == 0 ){

        println( num + "  is Even");     return true;

    } else {

        println( num + "  is not Even");     return false;

    }

}

 

mainFunction () {

...

    boolean bothAreEven_1 = isEven(3) && isEven(4) ;  //參數為   3  與   4

    println ("bothAreEven_1  is "+ bothAreEven_1 );

    println(" ");

    boolean bothAreEven_2 = isEven(7) & isEven(8) ;  //參數為   7  與   8

    println ("bothAreEven_2  is "+ bothAreEven_2 );

...

}

 

執行結果應當如下

3 is not Even

bothAreEven_1  is false

 

7 is not Even

8 is Even

bothAreEven_2  is false

 

從以上可以看出,如果使用 & 來判斷的話,前後兩個 isEven() function都會被執行

而如果使用 && 前面第一個 isEven() 回傳false的話,就不會執行後面那個

 

知道這個後,可以進一步應用的情境為

在某些情況雖然使用 & 或 && 產出最終結果是相同的,

但是依照需求的不同可以調整使用  & or &&

例如,

畫面要求輸入多個科目的成績 (成績 欄位 限制0~100分)

如果是使用 & 就可以一次把使用者輸入的值都檢查過,並顯示錯誤提示

 

 

如果是使用 && 就只會出現一個錯誤提示而已

(因為遇到false就會停止)

 

 

 

 


arrow
arrow

    sonyvsshadow 發表在 痞客邦 留言(0) 人氣()