2012-11-21 37 views
0

我知道我昨天有这种工作,但一天结束时,我错误地关闭了更改而未保存。今天我不知道我做错了什么。我有一个InputBox的循环,只想接受2个潜在的答案,在这种情况下,苹果或橘子应该退出循环。vbScript - 尽管不是“或”

Do 
    myValue = InputBox("Enter something") 
    Loop While Not myValue = "apple" Or myValue = "orange" 

如果输入了第一个值,但不是第二个值,上面将只会退出循环。如果我为第二个值添加“Not”以及如下所示,那么无论我输入什么,它都不会退出循环。

Do 
    myValue = InputBox("Enter something") 
    Loop While Not myValue = "apple" Or Not myValue = "orange" 

我知道这必须是明显的,但我想我已经看过这个相同的代码太长,看不到它。感谢您的帮助。

回答

1

你可能想要一个and ...

Do 
myValue = InputBox("Enter something") 
Loop While Not myValue = "apple" And Not myValue = "orange" 

不AND和不ORS 混乱,但如果你的工作通过,你就看着办吧。输入示例:apple

NOT "apple" = "apple"FALSENOT "apple" = "orange"TRUE。如果您使用OR,TRUE or FALSE评估为TRUE。因此循环继续。但是,如果您使用AND,整个声明评估为FALSE,它允许退出。

+0

谢谢!我知道这是显而易见的,我做错了。欣赏快速反应。 – aantiix

0

为什么不VBScript中英文翻译:

I want to ask the user until the input is "apple" or "orange" 

==>

Dim sInp 
    Do 
    sInp = InputBox("Enter something") 
    WScript.Echo "+", sInp 
    Loop Until sInp = "apple" Or sInp = "orange" 
    WScript.Echo sInp 

输出样本:

+ banana 
+ apple 
apple 
============= 

+ pear 
+ orange 
orange 
=============