public class TestPass {
int a,b;
TestPass(int i,int j)
{
a=i;
b=j;
}
boolean equals(TestPass o)
{
if(o.a==a&&o.b==b)
return true;
else
return false;
}
class Test
{
public static void main(String[] args)
{
TestPass ob1=new TestPass(100, 22);
TestPass ob2=new TestPass(100, 23);
System.out.println("Condition="+ob1.equals(ob2));
}
}
出力:
条件=私はこの出力との論理を見つけることができません
偽、bcoz 'if(oa == a & & ob == b)'コードが使用されていますhort circuit operator(& &)、それはオペレータの左手側のみをチェックします(私はそう思います)。右側を左のみチェックを
TestPass ob1=new TestPass(100, 22);
TestPass ob2=new TestPass(100, 23);
は、ここで私は異なる値を与えたが、私は考え、短絡演算子(& &)、私の予想出力はTrueです!、私は、私はwrong.Iは説明が必要だと思うあなたを期待助けて。
にsimplfiedすることができ、短絡演算子(&&)は、演算子の左辺のみをチェックする(私はそうだと思う) "< - 左手がfalseの場合のみ。参照:https://stackoverflow.com/questions/9344305/what-is-short-circuiting-and-how-is-it-used-when-programming-in-java –
いいえ '&&'は左側をチェックし、それが「真」であれば、右手側もチェックする。一方または両方の辺が「偽」である場合、表現全体が「偽」となる。 – Berger
*** Enrique_Iglesias ***あなたはスペインの歌手ですか? :) –