私はインターンのコードを見直していて、次のようなものに出くわしました:
//k* are defined constants
if ($a == 0 & $b >= k0) $a = 1;
if ($a == 1 & $b >= k1) $a = 2;
if ($a == 2 & $b >= k2) $a = 3;
私は彼が間違いを犯したと思っ&た&&.
しかし、実際には、彼のコードは期待どおりに機能し、その理由がわかりません。私の考えでは、>=が優先され、 (参照==)も優先されます。&
ということで、テスト(1 == 0 & 1 >= 0)したら出力されまし0た。私は予想1していました、私の心の原因は、次のようなものでした:
1 >= 0返品true、- 次に、
1 == 0_false - だから式は今
(false & true)、私は等しいと思った(0 & 1) - 等しい
1... - だから彼
&はのように行動してい||ます。
どこが間違っていますか??