17.4.9 論理演算子
論理演算子は、論理AND演算(&&)、および論理OR演算(||)を実行します。
(1) 形式
- 論理AND演算式
式1 && 式2
- 論理OR演算式
式1 || 式2
(2) 説明
論理演算子は通常の演算変換は実行しません。その代わりに、0と一致するかどうかという観点で各オペランドを評価します。論理演算の結果はtrueまたはfalseです。結果の型はboolです。
論理演算子の説明を次に示します。
演算子 |
説明 |
---|---|
&& |
両方のオペランドがtrueの場合、結果はtrueになります。どちらか一方のオペランドがfalseの場合、結果はfalseになります。論理AND演算の初めのオペランドがfalseの場合、2つ目のオペランドは評価されません。 |
|| |
両方のオペランドの評価がfalseの場合、結果はfalseになります。どちらか一方のオペランドの評価がtrueの場合、結果はtrueになります。論理OR演算の初めのオペランドがtrueの場合、2つ目のオペランドは評価されません。 |
論理ANDおよび論理OR式のオペランドは、左から右に評価されます。1つ目のオペランドの値だけで演算結果を判別できるときは、2つ目のオペランドは評価されません。これを「短絡評価」と呼びます。
(3) 記述例
DEFINE { float varfloat1 = 1.567e-1; integer varint1 = 10; integer varfloat2 = 0; integer varint2 = 0; bool varbool; integer WINH; } MAIN { varbool = varfloat1 && varint1; AIT_LogMessage("The expected value of varbool is: true"); varbool =varfloat2 && varint1; AIT_LogMessage("The expected value of varbool is: false"); varbool=varfloat1 && varint2; AIT_LogMessage("The expected value of varbool is: false"); varbool=varfloat2 && varint2; AIT_LogMessage("The expected value of varbool is: false"); }