首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

iif 和 if then 语句的差别,该怎么处理

2013-01-25 
iif 和 if then 语句的差别看下代码,IIF语句会将 True 和 False 都计算一遍,其中一个不正确就会出错,但ift

iif 和 if then 语句的差别
看下代码,IIF语句会将 True 和 False 都计算一遍,其中一个不正确就会出错,但if  then 语句就不会

比如情况1时,当strcp ="a|b"时正常,但没有了"|"就报错了
情况2,无论strcp中有没有"|"都执行正常。

如果要测试的话,只选其中一种情况,将另一种情况注释掉

这个确实是这样子的吗?如果iif会将True和False情况都计算一次,那从效率上讲会不会比IF  THEN 慢一些,这样的话,我以后就不再用IIF了!



    Dim iTemp As Long
    Dim strCp As String
    strCp = "MyTestStr"
    iTemp = InStr(strCp, "|")

'情况1
''    SelComputer = IIf(iTemp > 1, Left(strCp, iTemp - 1), strCp) 'IIf 语句会先将 True 和 False 都计算一遍,会出错

’情况2
    If iTemp > 1 Then
        SelComputer = Left(strCp, iTemp - 1)
    Else
        SelComputer = strCp
    End If

[解决办法]
不是一回事。

IIf 是一个函数,它要求一个返回值。因此,你必须明确制定真和假的情况下返回什么。但一次运行,它只能得到一个结果,取决于布尔值。

If Then Else End If 是条件分支语句,决定程序的流向。

就你上面所举的例子,实际上,条件为假的值在编译时就已经硬编码的。而条件为真的值,无论哪个,都只有运行到此才能确定。

热点排行