[英]What does this line mean in Java: boolean retry = id == 1;
我已經學習Java一段時間了,還在學習新的語法技巧和東西。 我在Android源代碼中遇到過這個:
boolean retry = id == 1;
這是什么意思?
id == 1
是一個布爾表達式,如果id
等於1
則為true,否則為false。
boolean retry = id == 1;
聲明一個名為retry
的布爾變量,並將布爾表達式id == 1
的值賦給此變量。
所以它聲明了一個布爾變量,如果id == 1
則為true,否則為false。
為了使它更清晰,你可以這樣寫:
boolean retry = (id == 1);
retry
是true
,如果id
的值為1,否則retry
是false
。
它是一樣的
boolean retry;
if (id == 1)
retry = true;
else
retry = false;
==
,它是等式謂詞,具有比=
更高的優先級,它是賦值運算符。
因此,首先計算id == 1
,然后將其值(true或false)分配給retry
。
如果id == 1
,則布爾重試的值為true。
它與以下相同:
boolean retry;
if (id == 1) {
retry = true;
} else {
retry = false;
}
首先用1來計算id
,所以推測id
是一個integer
。
之后,為此評估分配值retry
,因此如果id
等於1,則retry
將變為true
,並且對於任何其他id
retry
值將變為false
。
此行創建一個布爾變量,如果id
等於1則將其設置為true
否則設置為false
。
它像三元運算一樣, (x) ? true : false
(x) ? true : false
C,C ++,C#等中的(x) ? true : false
;
類似的語法:
boolean retry = (id == 1)? true: false;
或者它可以寫另一種方式:
boolean retry;
if (id == 1) {
retry = true;
} else {
retry = false;
}
我發現只使用parens有助於消除這種復雜語句背后的混亂。
boolean retry = (id == 1);
對我來說更有意義。 這里很明顯(id == 1)
是一個被評估的表達式,結果被分配給boolean retry
這是一種定義布爾變量的方法。
當id
為1
, retry
值將為true
。
retry
指定一個表達式,該表達式將為true或false,因為retry
是一個boolean
。 此外, ==
將首先解決,然后將分配retry
。
如果你這樣看,它可能更容易看到發生了什么:
boolean retry = (id == 1);
所以基本上它檢查id是否等於1,然后將結果分配給變量retry。
它與retry = (id == 1)
基本相同。 它正在評估布爾表達式,並將其指定為retry
。
布爾變量retry
將獲得值0
或1
具體取決於表達式id==1
返回true
還是false
。
如果id
值為1
,則id==1
將對應於true
,因此retry=1
。
如果id
值為0
,則id==1
將對應於false
,因此retry=0
。
請注意, ==
是一個比較運算符。
代碼可以像這樣編寫,然后很容易理解,你這么認為嗎? 最后,感謝您給我機會回答這個問題!
boolean retry = (id == 1);
1.int id = 1;
boolean retry = id == 1;
這意味着retry = true;
。
2.int id = 2;
boolean retry = id == 1;
這意味着retry = false;
。
簡化id == 1可以視為
if ( id == 1 ){
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.