vbScript - 做的不是“或”

时间:2012-11-21 18:56:42

标签: loops vbscript inputbox

我知道我昨天以某种方式工作了,但当天结束时我错误地关闭了更改而没有保存。今天我不知道我做错了什么。我有一个带有InputBox的循环,只想接受2个可能的答案,在这种情况下,apple或orange应该退出循环。

    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"

我知道这必须是显而易见的事情,但我想我已经看了很长时间才能看到相同的代码。感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可能需要and ...

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

不是ands而不是 令人困惑,但是如果你完成它,你就会弄清楚。输入示例:apple

NOT "apple" = "apple"FALSENOT "apple" = "orange"TRUE。如果您使用ORTRUE or FALSE评估为TRUE。因此循环继续。但是如果使用AND,则整个语句的计算结果为FALSE,这允许退出。

答案 1 :(得分: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
=============