更新時(shí)間:2022-10-25 10:21:03 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1862次
Java布爾類型是一種定義兩種狀態(tài)的類型:真狀態(tài)和假狀態(tài)。相關(guān)的關(guān)鍵字當(dāng)然是boolean, true(真狀態(tài))和false(假狀態(tài))。
一些編程語(yǔ)言,包括C 語(yǔ)言,沒(méi)有定義布爾類型,而是建議使用與錯(cuò)誤狀態(tài)相關(guān)聯(lián)的類型int,0并且任何其他值都將與真實(shí)狀態(tài)相關(guān)聯(lián)。在這些語(yǔ)言中,通常會(huì)發(fā)現(xiàn)以下代碼引入的無(wú)限循環(huán):while( 1 ) { /* du code */ }. 與1往常一樣,while(while 循環(huán))將永遠(yuǎn)運(yùn)行。當(dāng)然,Java 不提供這種可能性,要?jiǎng)?chuàng)建無(wú)限循環(huán),您必須使用以下代碼。
公共 類演示{
公共 靜態(tài) 無(wú)效主要(字符串[]參數(shù)){
while ( true ) {
// 做某事
}
}
}
一定數(shù)量的運(yùn)算符計(jì)算布爾結(jié)果:例如,比較運(yùn)算符 ( ==, !=, <, <=, ...) 的情況。類似地,一些指令需要布爾表達(dá)式:指令 if使用布爾條件來(lái)執(zhí)行或不執(zhí)行進(jìn)程。while只要相關(guān)的布爾條件為真,指令也將執(zhí)行循環(huán)。這是一個(gè)小例子:
公共 類演示{
公共 靜態(tài) 無(wú)效主要(字符串[]參數(shù)){
布爾調(diào)試=真;
System.out.println( "正常顯示" );
如果(調(diào)試){
System.out.println( "調(diào)試顯示" );
}
整數(shù)i =10;
而(我<0){
System.out.println( "i ==" + i);
一世 - ;
}
}
}
邏輯運(yùn)算符適用于布爾操作數(shù)。共有三個(gè)邏輯運(yùn)算符。
運(yùn)算符&&:它可以執(zhí)行邏輯“與”。請(qǐng)注意,如果左側(cè)操作數(shù)的計(jì)算結(jié)果為false,則不會(huì)計(jì)算第二個(gè)操作數(shù)(運(yùn)算符右側(cè))并且運(yùn)算符將返回false。
運(yùn)算符||:它可以執(zhí)行邏輯“或”。請(qǐng)注意,如果左側(cè)操作數(shù)的計(jì)算結(jié)果為true,則不會(huì)計(jì)算第二個(gè)操作數(shù)(運(yùn)算符右側(cè))并且運(yùn)算符將返回true。
運(yùn)算符!:它允許您執(zhí)行邏輯“NOT”。
公共 類演示{
公共 靜態(tài) 無(wú)效主要(字符串[]參數(shù)){
boolean state1 = true ;
System.out.println( "state1 == " + state1);
boolean state2 = false ;
System.out.println( "state2 == " + state2);
// --- 布爾運(yùn)算符:&& (and) || (金子) !(不是) - -
如果(狀態(tài)1 && 狀態(tài)2){
System.out.println( "兩個(gè)變量都初始化為真" );
}
如果(狀態(tài)1 || 狀態(tài)2){
System.out.println( "兩個(gè)變量之一初始化為真" );
}
if (state1 == false ) { // if (state1 == false) {
System.out.println( "state1 is initialized to false" );
}
if (!state2) { // if (state2 == false) {
System.out.println( "state2 is initialized to false" );
}
}
}
為了測(cè)試 a&&或 a的右手操作數(shù)的非求值||,建議你看看這個(gè)程序。
公共 類演示{
公共 靜態(tài) 無(wú)效主要(字符串[]參數(shù)){
字符串 str = null ;
雙隨機(jī)值 = Math.random(); // [0..1[
if (randomValue > 0.33) {
if (randomValue > 0.66) {
str = "三分之一的機(jī)會(huì)" ;
}其他{
str = "" ;
}
}
boolean leftOperand = str == null ;
boolean rightOperand = str.trim().equals( "" );
if ( 左操作數(shù) || 右操作數(shù) ) {
System.out.println( "str 不能為空" );
}其他{
System.out.println( "OK" );
}
}
}
程序可能會(huì)崩潰,因?yàn)槿绻兞縮tr為空,那么它將不包含字符串(實(shí)例)對(duì)象。結(jié)果,第 16 行將產(chǎn)生如下所示的錯(cuò)誤,試圖在不存在的對(duì)象上調(diào)用方法。
$> java 演示
線程“主”java.lang.NullPointerException 中的異常
在 Demo.main(Demo.java:16)
$>
因此,使此代碼正常工作的解決方案可能是將與變量關(guān)聯(lián)的表達(dá)式代碼 leftOperand直接rightOperand放在運(yùn)算符級(jí)別,||如下例所示。
公共 類演示{
公共 靜態(tài) 無(wú)效主要(字符串[]參數(shù)){
字符串 str = null ;
雙隨機(jī)值 = Math.random(); // [0..1[
if (randomValue > 0.33) {
if (randomValue > 0.66) {
str = "三分之一的機(jī)會(huì)" ;
}其他{
str = "" ;
}
}
if ( str == null || str.trim().equals( "" ) ) {
System.out.println( "str 不能為空" );
}其他{
System.out.println( "OK" );
}
}
}
以上就是關(guān)于“Java布爾類型介紹”,大家如果對(duì)此比較感興趣,想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門(mén)到精通,細(xì)致全面,很適合沒(méi)有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助哦。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)