y > 1)" 常に False と評価しますか? " /> y > 1)" 常に False と評価しますか? " />
C での連鎖論理演算子の妥当性の評価
ステートメント "(4 > y > 1)" は、その妥当性と評価について疑問を引き起こしますC でこれらの側面を詳しく調べて、ステートメントが C でどのように動作するかを明らかにしましょう。 .
式の評価
指定されたステートメントは論理演算子に分解できます。
(4 > y) > 1
C は、連鎖した論理演算子を左から順に評価します。したがって、評価は次のように進みます:
含意:
式 "(4 > y > 1)" は有効ですが、次の理由により常に false と評価されます。論理的な流れの説明
例外:
この動作の 1 つの例外は、y がカスタム クラスのオブジェクトであり、「>」演算子がオーバーロードされて別の値を示している場合です。行動。このようなシナリオでは、比較の結果が一般的な数値比較ルールから逸脱する可能性があります。
代替ステートメント:
より明確な論理セマンティクスを提供するには、次のように書き直すことをお勧めします。式は次のとおりです:
(4 > y && y > 1)
この定式化により、元のステートメントの曖昧さが回避され、必要な論理順序で条件を正しく評価します。
以上がC の連鎖比較「(4 > y > 1)」は常に False と評価されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。