1. 程式人生 > >if條件語句判斷條件辨析

if條件語句判斷條件辨析

if條件語句是使用布林表示式或布林值作為分支條件來進行分支控制。

1.也就是說當表示式值不為布林值時編譯報錯:如下

if(a=1){
    System.out.println("a");
}

原因為表示式a=1是將a賦值為1,是個整形量,不是布林值,故而程式報錯。

2.修改程式為:

int a=1;
if(a==1){
    System.out.println("a");
}

程式順利通過編譯,輸出結果為:

由於表示式a==1的值為true,是個布林型數值,所以if條件語句識別出這個值,執行了true時的分支選項。

 

3.那麼當賦值為布林值賦值表示式的情況呢?

boolean b=false;
if(b=false){
    System.out.println("false");
}else{
    System.out.println("true");
}

輸出結果如下:

也就是說if條件語句執行了false的分支選項,輸出了字串true。試著按著上述方法分析,表示式b=false為賦值語句,值為false,故而執行了false的選擇項。那麼現在做出如下修改:

boolean b=false;
if(b=true){
    System.out.println("false");
}else{
    System.out.println("true");
}

執行結果應當是false。實際輸出結果為:

實質上是直接送入一個布林值給判斷條件。

4.如果表示式為比較運算子==連線,如下:

boolean b=false;
if(b==false){
    System.out.println("false");
}else{
    System.out.println("true");
}

那麼如同之前整數的關係運算符一樣,這裡表示式的值應當為true,輸出結果為false。實際所得的結果如下:

綜上所述,if條件語句的判斷條件實質上就是一個布林值,這個布林值可以通過關係運算符來表達(2,4),也可以直接的給出這個布林值(3)。但是無論哪種方法,都要確保表示式的值為布林值,否則編譯會報錯(1)。