在迭代V2.0版四則運算的程序開發中,需要解析計算表達式,並判斷表達式的正確性。例如在解析計算表達式12+27時,程序需要從左至右讀取每一個字符,並判斷讀取的字符是否是合法字符,如果讀取的字符是除數字和運算符以為的字符,就需要提示用戶輸入錯誤,要求用戶重新輸入計算表達式。這裡面有個字符判斷的過程,判斷的結果影響後面程序的執行,因此程序需要把判斷結果存儲到一個變量中,用於控制程序執行不同的分支語句,這個變量的類型就是布爾類型。
布爾類型是表示邏輯狀態的類型。java語言通過關鍵字boolean來定義布爾類型變量,只有true和false兩個值,分別代表布爾邏輯中的「真」和「假」。Java語言雖然定義了boolean這種數據類型,但是只對它提供了非常有限的支持。在Java虛擬機中沒有任何供boolean值專用的字節碼指令,Java語言表達式所操作的boolean值,在編譯之後都使用Java虛擬機中的int數據類型來代替。
boolean變量可按如下方式聲明:
示例1:輸出boolean值到命令行窗口
在D盤Java目錄下,新建「BooleanSample.java」文件。用記事本打開「BooleanSample.java」文件,輸入以下代碼:
編譯「BooleanSample.java」文件,在命令行窗口輸入「javac BooleanSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java BooleanSample」運行Java程序,命令行窗口顯示如下信息:
從輸出結果可以看出,boolean類型的變量輸出的結果為被賦予的值。
示例2:輸出boolean值到命令行窗口
用記事本打開D盤Java目錄下「BooleanSample.java」文件,修改代碼如下:
編譯「BooleanSample.java」文件,在命令行窗口輸入「javac BooleanSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java BooleanSample」運行Java程序,命令行窗口顯示如下信息:
從輸出結果可以看出,當boolean類型的變量被賦為false值時,輸出的結果為false。
示例3:用boolean變量控制不同的程序分支
用記事本打開D盤Java目錄下「BooleanSample.java」文件,修改代碼如下:
編譯「BooleanSample.java」文件,在命令行窗口輸入「javac BooleanSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java BooleanSample」運行Java程序,命令行窗口顯示如下信息:
程序代碼賦值boolean 變量done為false,代碼中「if( done )」語句為判斷語句,其含義是:如果變量done為true,則執行if代碼塊語句,否則執行else代碼塊語句。由於done的值為true,因此程序執行else代碼塊語句,輸出「因為done =true,所以走到這裡了」。
在Java語言中,boolean變量編譯後被轉換為int變量,佔用4個字節的存儲空間,true被轉換為1賦值給int變量,false被轉換為0賦值給int變量。因此,程序需要判斷數值的真或假時,即可以用boolean類型變量,也可以用int類型的變量,當然也可以用byte類型的變量。
(1)下面的那個賦值語句是正確的()
A.boolean ready = 「true」;
B.boolean ready = 1;
C.boolean ready = 0;
D.boolean ready = true;
(2)下面的程序代碼,輸出的正確結果是()
A. success
B. error
C. success和error
D. 都不輸出
(3)boolean變量編譯後轉換為數據類型()
A.int
B.byte
C.short
D . char