簡體   English   中英

這行在Java中意味着什么:boolean retry = id == 1;

[英]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);

retrytrue ,如果id的值為1,否則retryfalse

它是一樣的

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

這是一種定義布爾變量的方法。

id1retry值將為true

retry指定一個表達式,該表達式將為true或false,因為retry是一個boolean 此外, ==將首先解決,然后將分配retry

如果你這樣看,它可能更容易看到發生了什么:

boolean retry = (id == 1);

所以基本上它檢查id是否等於1,然后將結果分配給變量retry。

它與retry = (id == 1)基本相同。 它正在評估布爾表達式,並將其指定為retry

布爾變量retry將獲得值01具體取決於表達式id==1返回true還是false

如果id值為1 ,則id==1將對應於true ,因此retry=1

如果id值為0 ,則id==1將對應於false ,因此retry=0

請注意, ==是一個比較運算符。

代碼可以像這樣編寫,然后很容易理解,你這么認為嗎? 最后,感謝您給我機會回答這個問題!

boolean retry = (id == 1);

我將基於id為int的假設進行響應,因此與1的比較是正確的,並且編譯錯誤不到位。 ==是java中的等於運算符,如JLS的第15.21.1節所述。 作為布爾運算符,==將輸出一個布爾值。 =是java的賦值運算符,在這種特殊情況下,它是具有以下語法的復合賦值運算符

布爾值f =(op1 op op2)

在translation =中,將(op1 op op2)操作的輸出值分配給左操作數,在本例中為f

回顧一下您的示例, id == 1的輸出(如果id的值為1則為true,否則為false)將被指定為重試

用簡單的英語結束,您的示例具有以下含義: 只要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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM