乗算を評価するには、最初の項を評価し、次に 2 番目の項を評価し、最後に 2 つの値を乗算する必要があります。
0 で乗算されたすべての数値が 0 であることを考えると、最初の項の評価が 0 を返す場合、2 番目の項を評価せずに乗算全体が 0 に評価されると予想されます。
ただし、このコードを試すと:
var x = 0 * ComplexOperation();
x が 0 であることがわかっているにもかかわらず、関数 ComplexOperation が呼び出されます。
最適化された動作は、最初の項が true と評価された場合にのみ 2 番目の項を評価するブール演算子 '&&' とも一致します。(「&」演算子は、いずれの場合も両方の項を評価します)
でこの動作をテストしましC#
たが、ほとんどすべての言語で同じだと思います。