我在VB中遇到了一个问题,是关于IIf函数的,求高手指教

2024-12-23 11:57:39
推荐回答(5个)
回答1:

对于IIF的计算,这样解释你会明白些.
X=IIF(A,B,C)
首先是正常理解,A=True时,X=B,A=False时,X=C
其次,你要明白,在IIF中,B和C如果是函数或计算公式时,是先计算结果的,
比如X=IIF(funA(A),funB(B),funC(C))
在IIF中的计算过程是先计算funB,funC的值,再用funA的结果去判断的.
这一点与if else不同.
所以,在你的代码中,不论a>0 =0 <=0,都会显示msgbox

如果要考虑到程序的性能,应该选择使用if,IIF只用作简单的数据选择.

回答2:

chenxfsoft 说得没错, VB的IIF会有这样的陷阱在里面, 所以容易出错的判断语句尽量用IF
比如下面的语句
c = IIF(b = 0, 0, a/b)
看上去似乎排除了报错的情况, 实际执行时就发现不是那么回事
所以用IIF的时候一定小心

回答3:

iif第一个参数 是条件 你设置的条件是 当a变量大于0
你的A是1 既然都满足条件 就会执行 第二个参数
iif(条件=true,true,false)

回答4:

该语句会先执行两个表达式的值,执行到msgbox时就会显示出对话框了,跟a值判定没有关系。

回答5:

iff(表达式,表达式1,表达式2)
如果表达式成立则执行表达式1否则执行表达式2
iff(val(text1.text)>1,print"0",print"1")
x=iff((val(text1.text)>1,"0","1"))