66

私はしばらくの間Javaを学んでいますが、それでも新しい構文のトリックなどを学んでいます。私はAndroidのソースコードでこれに出くわしました:

boolean retry = id == 1;

どういう意味ですか?

4

17 に答える 17

220

id == 1はブール式であり、id等しい場合はtrue 1、それ以外の場合はfalseです。

boolean retry = id == 1;、という名前のブール変数を宣言し、retryブール式の値をこの変数に割り当てid == 1ます。

したがって、ブール変数を宣言します。これは、の場合はtrue id == 1、それ以外の場合はfalseです。

少し明確にするために、次のように書くことができます。

boolean retry = (id == 1);
于 2013-02-04T12:03:42.747 に答える
151

retryの値が1の場合、それ以外の場合trueはです。idretryfalse

于 2013-02-04T12:01:35.290 に答える
69

と同じです

boolean retry;
if (id == 1)
   retry = true;
else
   retry = false;
于 2013-02-04T12:02:32.667 に答える
44

===等式述語である、は、代入演算子である、よりも優先順位が高くなります。

したがって、id == 1が最初に評価され、次にその値(trueまたはfalse)がに割り当てられretryます。

于 2013-02-04T15:32:38.280 に答える
14

ブール再試行は、の場合にtrueの値を取得しますid == 1

それは次と同じです:

boolean retry;
if (id == 1) {
    retry = true;
} else {
    retry = false;
}
于 2013-02-04T12:03:23.897 に答える
6

最初に、idは1で評価されるため、おそらくはidですinteger

その後、値retryにこの評価が割り当てられるため、idが1に等しい場合はretryになりtrue、それ以外の場合はid retryになりfalseます。

于 2013-02-04T12:03:39.043 に答える
3

私は、parensを使用するだけで、このような複雑なステートメントの背後にある混乱を解消するのに役立つことがわかりました。

boolean retry = (id == 1);私にははるかに理にかなっています。(id == 1)ここでは、が評価されている式であり、結果がに割り当てられていることは明らかです。boolean retry

于 2013-02-04T17:35:52.790 に答える
3

この行はブール変数を作成し、1に等しいtrue場合とそうでない場合に設定します。idfalse

于 2013-02-04T12:34:35.733 に答える
3

(x) ? true : falseこれは、C、C ++、C#などの三項演算のように機能します。

同様の構文:

boolean retry = (id == 1)? true: false; 

または、別の方法で書くこともできます。

boolean retry;
if (id == 1) {
    retry = true;
} else {
    retry = false;
}
于 2013-02-04T14:45:28.177 に答える
2

これはブール変数を定義する方法です。

の場合、の値はidになります。1retrytrue

于 2013-02-04T14:16:37.823 に答える
2

次のように見ると、何が起こっているのかを確認しやすくなる可能性があります。

boolean retry = (id == 1);

したがって、基本的にはidが1に等しいかどうかをチェックし、その結果を変数retryに割り当てます。

于 2013-02-04T19:37:07.100 に答える
2

retryのようにtrueまたはfalseのいずれかになる式を割り当てretryますboolean。さらに、==最初に解決され、次にに割り当てられretryます。

于 2013-02-04T15:53:12.777 に答える
2

基本的にはと同じretry = (id == 1)です。ブール式を評価し、に割り当てretryます。

于 2013-02-04T22:17:06.350 に答える
1

ブール変数retryは値を取得するか、式がまたはを返すかどう0かによって異なります。1id==1truefalse

の値id1、の場合、はid==1に対応します。trueしたがって、retry=1

また、の値id0、の場合、id==1はに対応します。falseしたがって、retry=0

==これは比較演算子であることに注意してください。

于 2015-05-27T07:32:04.307 に答える
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である限り、再試行してください。

于 2013-02-04T14:30:06.747 に答える
0
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 ){
}
于 2013-03-28T13:17:43.700 に答える
0

コードはこのように書くことができます、そうすればそれは簡単に理解されるでしょう、あなたはそう思いますか?最後に、質問に答える機会を与えてくれてありがとう!

boolean retry = (id == 1);
于 2018-03-17T06:10:16.623 に答える