私はしばらくの間Javaを学んでいますが、それでも新しい構文のトリックなどを学んでいます。私はAndroidのソースコードでこれに出くわしました:
boolean retry = id == 1;
どういう意味ですか?
id == 1
はブール式であり、id
等しい場合はtrue 1
、それ以外の場合はfalseです。
boolean retry = id == 1;
、という名前のブール変数を宣言し、retry
ブール式の値をこの変数に割り当てid == 1
ます。
したがって、ブール変数を宣言します。これは、の場合はtrue id == 1
、それ以外の場合はfalseです。
少し明確にするために、次のように書くことができます。
boolean retry = (id == 1);
retry
の値が1の場合、それ以外の場合true
はです。id
retry
false
と同じです
boolean retry;
if (id == 1)
retry = true;
else
retry = false;
==
=
等式述語である、は、代入演算子である、よりも優先順位が高くなります。
したがって、id == 1
が最初に評価され、次にその値(trueまたはfalse)がに割り当てられretry
ます。
ブール再試行は、の場合にtrueの値を取得しますid == 1
。
それは次と同じです:
boolean retry;
if (id == 1) {
retry = true;
} else {
retry = false;
}
最初に、id
は1で評価されるため、おそらくはid
ですinteger
。
その後、値retry
にこの評価が割り当てられるため、id
が1に等しい場合はretry
になりtrue
、それ以外の場合はid
retry
になりfalse
ます。
私は、parensを使用するだけで、このような複雑なステートメントの背後にある混乱を解消するのに役立つことがわかりました。
boolean retry = (id == 1);
私にははるかに理にかなっています。(id == 1)
ここでは、が評価されている式であり、結果がに割り当てられていることは明らかです。boolean retry
この行はブール変数を作成し、1に等しいtrue
場合とそうでない場合に設定します。id
false
(x) ? true : false
これは、C、C ++、C#などの三項演算のように機能します。
同様の構文:
boolean retry = (id == 1)? true: false;
または、別の方法で書くこともできます。
boolean retry;
if (id == 1) {
retry = true;
} else {
retry = false;
}
これはブール変数を定義する方法です。
の場合、の値はid
になります。1
retry
true
次のように見ると、何が起こっているのかを確認しやすくなる可能性があります。
boolean retry = (id == 1);
したがって、基本的にはidが1に等しいかどうかをチェックし、その結果を変数retryに割り当てます。
retry
のようにtrueまたはfalseのいずれかになる式を割り当てretry
ますboolean
。さらに、==
最初に解決され、次にに割り当てられ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
。
==
これは比較演算子であることに注意してください。
idがintであると仮定して応答を行います。したがって、1との比較は適切であり、コンパイルエラーは発生しません。 ==は、JLSのセクション15.21.1で説明されているJavaの等式演算子です。ブール演算子であるため、==はブール値を出力します。 =はJavaの代入演算子です。この特定のケースでは、次の構文を持つ複合代入演算子です。
ブールf=(op1 op op2)
変換中=は、演算の出力値を(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 ){
}
コードはこのように書くことができます、そうすればそれは簡単に理解されるでしょう、あなたはそう思いますか?最後に、質問に答える機会を与えてくれてありがとう!
boolean retry = (id == 1);