0

クラスの 1 つでこのループを作成しましたが、何らかの理由でループが停止しません。ここに私が持っているコードがあります

    Dim strScore As String
    Dim intNumTests As Integer 'counter
    Dim sngSumTests As Single 'accumulator
    Dim sngAverage As Single

    strScore = InputBox("Enter the score. Click cancel when finished.", "Score Entry")

    Do While strScore <> " "
        intNumTests = intNumTests + 1     ' update Counter
        sngSumTests = sngSumTests + Val(strScore)
        strScore = InputBox("Enter the score. Click cancel when finished.", "Score Entry")
    Loop
4

1 に答える 1

2

ループを停止するには、InputBox に実際の単語ではなくスペースを入力しspace、スペースバーを 1 回押す必要があります。

それ以外の

Do While strScore <> " "

あなたが本当に欲しかったのは

Do While strScore <> "" AndAlso strScore <> " "

また

Do While strScore.Length <> 0 AndAlso strScore <> " "

これでCancelボタンは適切に機能し、何も入力せずにOKボタンを押しても続行されます。

OKInputBoxのボタンを押したときに入力が空の場合は、 " "(スペース) が返されます。InputBox でボタンを押すと返されます
(空の文字列)Cancel""

編集: OK.NET Framework 4 で空の InputBox を押すと (空の文字列) も返されるので、それは不可能ですか? Cancelボタンを検出します。

于 2013-10-09T00:47:32.550 に答える