如何在一段时间
问题描述:
定义更多的一个条件,我想这样的事情:如何在一段时间
While Not RdoRst.EOF And RdoRst(2) = "Foo"
cboComboBox.AddItem RdoRst(1)
cboComboBox.ItemData(cboComboBox.NewIndex) = RdoRst(0)
RdoRst.MoveNext
Wend
我想要表达的1(不RdoRst.EOF)首先被计算。然后如果它返回true,表达式2也被计算(RdoRst(2)=“Foo”)。如果表达式1返回false,则不评估表达式2。
问候,
弗洛里安
答
AndAlso是不是在VB6用。尝试这种
Do
If RdoRst.EOF Then Exit Do
If Not RdoRst(2) ="Foo" Then Exit Do
cboComboBox.AddItem RdoRst(1)
cboComboBox.ItemData(cboComboBox.NewIndex) = RdoRst(0)
RdoRst.MoveNext
Loop
答
While Not RdoRst.EOF
If RdoRst(2) = "Foo" Then
cboComboBox.AddItem RdoRst(1)
cboComboBox.ItemData(cboComboBox.NewIndex) = RdoRst(0)
Else
Exit Wend
End If
RdoRst.MoveNext
Wend
+0
好主意,但是你的代码行为和问题中的代码不一样吗?当发现非Foo值时,问题中的代码立即停止循环。你的代码不断循环寻找另一个Foo。 – MarkJ 2010-10-01 08:42:59
+0
你说得对,我应该把ELSE退出温德 – 2010-10-01 12:26:49
答
问题涉及条件表达式的“短路”的评价。那么VB6不支持这个功能。我知道这很愚蠢。
始终使用'Do ... Loop'而不是'While ... Wend'。 'Do'循环可以通过'Exit Do'退出,这将最容易解决你的问题。 – wqw 2010-10-01 14:54:23