昨天写程序的时候用到IIF函数,原来我以为它的作用类似于
if
条件满足时执行部分
else
条件不满足时执行部分
end if
可是当我发现用 IIf(expr, truepart, falsepart)时,虽然只返回一个结果,可实际上truepart和falsepart两部分均被程序执行过了,这样子的后果就是假如 iif(5>3,100/5,100/0),则程序会发生错误,因为falsepart部分也被执行了,而0又不能作为除数的,这种情况只能用if、、、else、、、end if来写,而不能使用iif函数。我昨天就犯了这么一个错误!
IIF函数
根据表达式的值,来返回两部分中的其中一个。
语法
IIf(expr, truepart, falsepart)
IIf 函数的语法含有下面这些命名参数:
部分 | 描述 |
expr | 必要参数。用来判断真伪的表达式。 |
truepart | 必要参数。如果 expr 为 True,则返回这部分的值或表达式。 |
falsepart | 必要参数。如果 expr 为 False,则返回这部分的值或表达式。 |
说明
由于 IIf 会计算 truepart 和 falsepart,虽然它只返回其中的一个。因此要注意到这个副作用。例如,如果 falsepart 产生一个被零除错误,那么程序就会发生错误,即使 expr 为 True。