0

昨日何とかこれが機能していたことは知っていますが、その日の終わりに、変更を保存せずに誤って閉じました。今日、私は自分が間違っていることを知りません。私は InputBox でループしており、2 つの潜在的な回答のみを受け入れたいと考えています。この場合、apple または orange はループを終了する必要があります。

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

上記は、最初の値が入力され、2 番目の値が入力されていない場合にのみループを終了します。次のように2番目の値に「Not」を追加すると、入力内容に関係なくループを終了しません。

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

これは明らかなことであることはわかっていますが、同じコードをあまりにも長く見すぎて理解できなかったと思います。ご協力ありがとうございます。

4

2 に答える 2

1

あなたはおそらくand...

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

NotandsとNotors紛らわしいですが、それを実行すると、理解できるでしょう。入力例:アップル

NOT "apple" = "apple"、、です。FALSE_ を使用する場合、はに評価されます。したがって、ループは継続します。ただし、を使用すると、ステートメント全体がと評価され、終了が許可されます。NOT "apple" = "orange"TRUEORTRUE or FALSETRUEANDFALSE

于 2012-11-21T19:00:40.417 に答える
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
=============
于 2012-11-21T19:16:33.640 に答える