如何修改运算符"&&"和"||"的定义,使其不使用短路评估?



如何修改运算符的定义"amp"以及"||"以便他们不使用短路评估?请显示新的语义规则。

我尝试了以下操作:"AND(&&(:如果可以转换为false,则返回表达式#1;否则返回表达式#2。因此,当与布尔值一起使用时,如果两个操作数都可以转换为true,则返回true;否则,返回false。OR(||(:如果可以转换为true,则返回表达式#1;否则,返回表达式#2。因此,当与布尔值一起使用时,如果其中一个操作数可以转换为true,则||返回true;如果两者都可以转换为false,则返回false">

然而,显然,这仍在使用短路评估。

短路评估意味着,每当遇到AND的值为false和OR的值为true时,都会立即停止。这是因为无论第二项是什么,整个表达式的值都将始终是

您的AND描述是错误的,因为如果表达式#1的计算结果为false,则根本不计算表达式#2。OR也是如此。

您要做的是在操作任一值之前对两个表达式进行求值。

最新更新