Sub Demo()
Dim x As Integer
Dim y As Integer
x = 20
y = 15
While ((x <> 10) Or (y <> 10))
x = x - 1
y = y - 1
Debug.Print x & " : " & y
Wend
Debug.Print x & " : " & y
End Sub
当x或y等于10时,此循环进入infinte模式,而不是在条件下中断。我尝试使用Do..While..Loop
,但即使这样也行不通。我们不能在While
语句中使用多个条件。
答案 0 :(得分:4)
将or
替换为and
!
即使x为10,y也不等于10,反之亦然,因此您的条件始终为真,您的循环将永远持续...
答案 1 :(得分:1)
您只需将使用的逻辑从“OR”更改为“AND”。
每当它当前迭代时,它会检查其中任何一个是真的,但是,如果y = 10,而X没有,你将继续循环,因为它评估两者。
使用“AND”,只要满足一个条件,就会断开循环。