java語句中,判斷條件是賦值語時,多種場景驗證結論


java語句中,判斷條件是賦值語時,多種場景驗證結論

眾所周知,java中有個基本類型是boolean,僅有true和false兩個值。

在平時判斷語句中,通常這樣使用

int a = 1;
int b = 2;
if(a == b){
    System.out.print("true");
}
else{
    System.out.print("false");
}
//最后會輸出false

或者這樣使用

int a = 1;
int b = 2;
System.out.print(a==b);
//同樣會輸出false

那如果在if/while判斷和輸出命令中寫類似a=b的賦值語句會怎么樣呢?

首先來看if判斷:

//方式1:賦值語句的參數為非boolean類型——報錯,因為判斷語句中只能輸入boolean類型的參數
int a = 1;
int b = 2;
if(a=b){
    System.out.print("true");
}
else {
    System.out.print("false");
}

//方式2:賦值語句的參數為boolean類型——不報錯
boolean flag1 = true;
boolean flag2 = false;
//分別執行下列四種場景,注意不要一次性執行,否則定義的"flag1 = true;flag2 = false;"會被覆蓋,影響此次實驗結果
//flag1=flag2
if(flag1=flag2){
    System.out.print("true");
}
else {
    System.out.print("false");//輸出false
}
​
//flag2=flag2
if(flag2=flag2){
    System.out.print("true");
}
else {
    System.out.print("false");//輸出false
}
​
//flag2=flag1
if(flag2=flag1){
    System.out.print("true");//輸出true
}
else {
    System.out.print("false");
}
​
//flag1=flag1
if(flag1=flag1){
    System.out.print("true");//輸出true
}
else {
    System.out.print("false");
}

由上面4種場景分別執行結果來看,得出結論:if判斷語句中賦值語句的結果,取決於等號右邊的值,等號右邊是true則判斷語句為true,等號右邊是false則判斷語句為false。while可證結論一致。

接下來看下輸出語句中寫賦值語句的結果:

//方式1:賦值語句的參數為非boolean類型
int a = 1;
int b = 2;
//分別執行下列四種場景,注意不要一次性執行,否則定義的"int a = 1;int b = 2;"會被覆蓋,影響此次實驗結果
System.out.print(a=b);//輸出2
System.out.print(b=b);//輸出2
System.out.print(b=a);//輸出1
System.out.print(a=a);//輸出1
//方式1:賦值語句的參數為boolean類型
boolean flag1 = true;
boolean flag2 = false;
//分別執行下列四種場景,注意不要一次性執行,否則定義的"flag1 = true;flag2 = false;"會被覆蓋,影響此次實驗結果
System.out.print(flag1=flag2);//輸出false
System.out.print(flag2=flag2);//輸出false
System.out.print(flag2=flag1);//輸出true
System.out.print(flag1=flag1);//輸出true

由上面4種場景分別執行結果來看,最終得出結論:

判斷語句和輸出語句中如果為賦值語句如a=b,最終結果取決於賦值語句等號右邊的值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM