ふと妙な疑問を抱く..
かどうか知りたい
if(a && b) {
}
と同じです
if(a) {
if(b) {
}
}
か否か..
両方のケースで同じ結果が得られました。しかし、私のプロジェクトで最初の方法を使用するのはまだ快適ではありません。
何か役に立ちますか??
If-else ステートメントを使用している場合、条件が true の場合にのみループが実行されます:---
if(condition){
//execute when it is true
}
あなたの場合、AND OPERATORで2つの変数aとbを使用しています。のプロパティはAND OPERATOR
、値を与えるすべてが true の場合は true を返し、それ以外の場合は false です。
あなたの方法を使用したい場合は、
/*
check for your in a and b
both are true
*/
then your method will be execdute
if(a && b) {
//if a and b both return true(a=true,b=true)
}
同じです。最初のケースでは、最初の条件が false を返す場合、コンパイラは 2 番目の条件が実行されないことを保証します。
はい、機能に関する限り、それらは同じです。&&
短絡演算子です。したがって、 in はa && b
、b
が に評価される場合にのみa
評価されtrue
ます。
ネストされif
た場合も同様です。innerif
は、outerif
が に評価された場合にのみ実行されtrue
ます。ただし、との両方が.a
b
true
ただし、1 つの違いは、ネストされた開始前にその機能を追加することで、2番目a = true
のケースで、の機能を実装できることです。しかし、あなたはそれを1日で行うことはできませんb = false
if
a && b
a
if is tue and so is を意味するのでb
、そう:
if(a && b) {
}
a && b
if 本体が実行される場合にのみ、優柔不断の余地はありません。
if(a) {
if(b) {
}
}
の場合は、しばらくa
考えずに行動する余地があります。b
したがって、チェックする前にいくつかのアクションを実行したい場合は、実行b
できます。
いつでも何もする必要がない場合a
、2つは同等であり、私見では、最初の方が読みやすいため優先されます。
多くの人が私の前に述べたように、それらは技術的に同等です(短絡のセマンティクスに至るまで)。
しかし、 && 演算子はどのような状況でも好まれ、好みの問題ではありません。ネストされた if は、制御ステートメント以外の日常的なコードでは読みにくく、エラーの余地が大きくなります。
ほとんどの場合、「次のブロックはbが true の場合にのみ実行されます」if(b)
という通信 が原因です。
しかし、それは起こりません!ブロックは、a と bが trueの場合にのみ実行されます(これはまさに、最初のメソッドがかなりエレガントに伝えていることです)。意図せずにコンテキストから引き出してif(a)
(どの IDE にもコードをシャッフルする方法がたくさんあります)、バグを作成するのは非常に簡単です。
ネストされた if は、後で恐ろしいコードを作成する余地も残します。内側と外側の間にコードを挟み込むと、特に a と b が複雑な式の場合、どのコードがいつ実行されるかを理解するのが難しくなります。そして、誰かがいくつかのelseステートメントを投げ込むことにしたとき、物事は本当に厄介になります.. :-) 単一の&&演算子でその混乱に陥る方法はまったくありません。
この「柔軟性」が2番目の方法を使用する理由であると主張する人もいるかもしれませんが、明示的な条件を使用してきれいに書き直す方法はほとんど常にあると私は主張します。脳のすべてのサイクルを制御ロジックに費やさなくても、コーディングは十分に困難です。
結論: すべての Java プログラマーは、条件付き AND 演算子のセマンティクスを理解しています。独自の同等物をローリングする代わりに、組み込みの言語構造に依存することは、保守性と正確性に大いに役立ちます。
お役に立てれば。
両方の条件は最初の条件と同じです: 、演算子if(a && b){ }
でチェックしているため、 inはtrue と評価された場合にのみ評価されます。&&
a && b
b
a
一方、2番目のケースでは、まずa
外側のif条件の値をチェックし、それが満たされる場合b
は内側のif条件の値をチェックします。
しかし、最初のものがより好ましいです。
はい、それは同じことです。オペレーターは、両方の&&
条件が真かどうかをチェックします。if
そのようにステートメントをネストすると、2 番目のステートメントは最初のステートメントが true である場合にのみチェックされるため、同じことになります。a
trueであることを含むが、そうではない何かを行う必要がある場合にのみ、それらを分離してくださいb
。
どちらの場合も、単なる短絡です。
ここで、2 番目の引数は、最初の引数が式の値を決定するのに十分でない場合にのみ実行または評価されます。
短絡式 x Sand y (短絡の種類を示すために Sand を使用) は、条件式 if x then y else false と同等です。式 x Sor y は、if x then true else y と同等です。
構文に来て、if(a && b)
コードを美しくし、読みやすくする最初のこと ( )。