C の
y > 1)` 期待どおりに評価しますか? " />
連鎖論理演算子の評価: C の (4 > y > 1)
C の式 (4 > y > 1)その妥当性と評価について疑問が生じます。詳細は次のとおりです。説明:
妥当性:
式自体は C で構文的に有効ですが、その意味解釈は予期せぬものになる可能性があります。
評価順序:
C は論理演算子を左から順に評価します。したがって、(4 > y > 1) は ((4 > y) > 1) として解析されます。
意味解釈:
式 ((4 > y) > 1) は (4 > y) の結果を比較します。 (4 > y) は、y が 4 未満の場合は 1 を返し、それ以外の場合は 0 を返します。
結果:
0 または 1 は決して大きくないため1 の場合、式 ((4 > y) > 1) は常に false と評価されます。つまり、ステートメント (4 > y) は常に false と評価されます。 y > 1) は、y の値に関係なく、決して true ではありません。
書き換え:
より意味のある式は、代わりに論理 AND (&&) を使用することです。連鎖した大なり演算子の組み合わせ。例:
(4 > y) && (y > 1)
この式は、(4 > y) と (y > 1) の両方が true の場合にのみ true になります。
例外:
場合によっては、連鎖論理演算子の動作が予想される結果と異なる場合があります。具体的には、y が > をオーバーロードするクラスのインスタンスである場合、演算子を使用する場合、結果は演算子の実装方法によって異なります。
以上がC の `(4 > y > 1)` は期待どおりに評価されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。