式1 && 式2
式1 || 式2
論理演算子は通常の演算変換は実行しません。その代わりに,0と一致するかどうかという観点で各オペランドを評価します。論理演算の結果はtrueまたはfalseです。結果の型はboolです。
論理演算子の説明を次に示します。
演算子 | 説明 |
---|---|
&& | 両方のオペランドがtrueの場合,結果はtrueになります。どちらか一方のオペランドがfalseの場合,結果はfalseになります。論理AND演算の初めのオペランドがfalseの場合,二つ目のオペランドは評価されません。 |
|| | 両方のオペランドの評価がfalseの場合,結果はfalseになります。どちらか一方のオペランドの評価がtrueの場合,結果はtrueになります。論理OR演算の初めのオペランドがtrueの場合,二つ目のオペランドは評価されません。 |
論理ANDおよび論理OR式のオペランドは,左から右に評価されます。一つ目のオペランドの値だけで演算結果を判別できるときは,二つ目のオペランドは評価されません。これを「短絡評価」と呼びます。
両方の式がtrueと評価された場合は,結果はtrueになります。式のどちらかがfalseと評価された場合は,結果はfalseになります。次の表では,評価結果の判別方法を示します。
式1の評価 | 式2の評価 | 評価結果 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
どちらか一方,または両方の式がtrueと評価された場合は,結果はtrueになります。次の表では,評価結果の判別方法を示します。
式1の評価 | 式2の評価 | 評価結果 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
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");
}