私はインターンのコードを見直していて、次のようなものに出くわしました:
//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
... - だから彼
&
はのように行動してい||
ます。
どこが間違っていますか??