Boolean資料類型
Boolean 變數儲存為 16 位(2 個位元組)的數值形式,但只能是 True 或是 False。Boolean 變數的值顯示為 True 或 False(在使用 Print 的時候),或者 #TRUE# 或 #FALSE#(在使用 Write # 的時候)。使用關鍵字 True 與 False 可將 Boolean 變數賦值為這兩個狀態中的一個。
當轉換其他的數實值型別為 Boolean 值時,0 會轉成 False,而其他的值則變成 True。當轉換 Boolean 值為其他的資料類型時,False 成為 0,而 True 成為 -1。
標準C沒有布爾類型,是用整型代替布爾類型的,就是0/1。
ISO99前的C語言標準中不支援Boolean類型-一個比較操作符的結果是一個整型,測 試運算式的結果也不會有類型檢查。C99加入了Boolean類型(_Bool和bool,true和 false宏定義在stdbool.h裡),但是沒有加強類型檢查。Splint支援Boolean類型檢查。 通過引入獨立的Boolean類型和強類型檢查,很多普通錯誤都可以被檢測出。
VB中的boolean
Boolean 資料類型是整數資料類型的一個特例。Boolean 資料類型可以包含 True 或 False;Microsoft® Visual Basic® for Applications (VBA) 內部將 True 值儲存為 -1,將 False 值儲存為 0。
可以使用 Cbool 函數將任意的數值轉換為 Boolean 值。當您將其它的數值型資料類型轉換為 Boolean 值時,任何非零值都等價於 True,而零值 (0) 等價於 False。例如,Bool(7) 返回 True,而 CBool(5 + 2 – 7) 返回 False,因為經計算後它為 CBool(0)。
下列過程可確定數字是否為偶數。該過程使用 Mod 運算子確定一個數除以 2 後是否有餘數。如果數字是偶數,那麼除以 2 之後將沒有餘數;如果該數是奇數,那麼除以 2 之後餘數為 1。
Function IsEven(lngNum As Long) As Boolean ' 確定某個數是偶數還是奇數。 If lngNum Mod 2 = 0 Then IsEven = True Else IsEven = False End IfEnd Function
編寫此過程的另一個方法是將運算式的結果轉換成 Boolean 值,然後使用 Not 關鍵字切換它的值,如下例中所示。如果 lngNum 參數是奇數,則它一定為非零值;將 lngNum 轉換成 Boolean 值將輸出 True。由於值為奇數時該過程一定返回 False,因此使用 Not 關鍵字來切換 Boolean 值將得出正確的結果。
Function IsEven(lngNum As Long) As Boolean ' 確定某個數是偶數還是奇數。 IsEven = Not CBool(lngNum Mod 2)End Function
注意修訂後的 IsEven 過程將五行的 If匱hen 語句壓縮成單行代碼。如果使用 If匱hen 語句在某個條件下將某個值設定成 True,而在另一個條件下將值設定成 False,就像 IsEven 過程所做的一樣,那麼您可以通過修改其返回 True 或 False 的條件來壓縮 If匱hen 語句。然而,修訂後的過程可能更加難於理解。