VB中Do While循环使用Or条件出现异常问题求助
嗨 Hugh,我一眼就看出问题出在哪啦——你把逻辑运算符搞反了!
你现在写的循环条件是:
Do While headingStart <> -1 OrElse count <= 3
这个条件的意思是:只要headingStart不是-1,或者count还没超过3,循环就会一直继续。这就导致如果headingStart一直不等于-1(比如总能找到目标),哪怕count早就超过3了,第一个条件始终为真,循环自然就无限跑下去了。
你真正需要的应该是用**AndAlso**代替OrElse,把条件改成:
Do While headingStart <> -1 AndAlso count <= 3
这样的逻辑是:只有当headingStart不是-1(还能找到目标),并且count还没超过3次时,循环才继续。只要其中一个条件不满足(要么找不到目标了,要么循环次数够了),循环就会立刻停止,完美解决你的问题!
另外再提醒一句:如果你的headingStart是在循环内部更新的(比如每次循环重新查找下一个匹配项),记得确保每次循环都正确更新这个值,不然还是可能出现意外的无限循环哦。
内容的提问来源于stack exchange,提问作者HughJanus
相关产品推荐
相关产品推荐

