Интересно, будет ли кто-нибудь настолько любезным, чтобы рассказать мне, почему мой код не работает. Отладка показывает, что значение может равняться 1 или 2, но VB будет выполнять только первый оператор while, а не второй.Почему мои петли While While работают правильно?
Const AnswerA As String = "Copenhagen"
Const AnswerB As String = "Peter the Great"
Dim Value As Integer
Dim Message, Response As String
Private Sub btnAskMe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAskMe.Click
Randomize()
' Generate random value between 1 and 2 to test only.
Value = CInt(Int((2 * Rnd()) + 1))
If Value = 1 Then
Message = "What's the capital of Denmark?"
While Response <> AnswerA
Response = InputBox(Message)
If String.IsNullOrEmpty(Response) Then Exit Sub
If Response <> AnswerA Then Message = "No, no, no! Think boy, think?"
End While
MsgBox("Correct....What took you so long?")
End If
If Value = 2 Then
Message = "Which Russian Tsar forced his wife to keep her lovers head in a jar?"
While Response <> AnswerB
Response = InputBox(Message)
If String.IsNullOrEmpty(Response) Then Exit Sub
If Response <> AnswerB Then Message = "No you twerp! Have another go"
End While
MsgBox("Correct....What took you so long?")
End If
End Sub
End Class
Готово ** НИКАКОЙ ** основной отладки, как проверка, если ваша функция на самом деле называется? Проверьте, какое значение находится в 'Value'? И точно, как вы ожидаете, что ваш код «Value = 2» будет запущен, если у вас есть «Exit Sub» прямо над ним? –
Благодарим за отзыв. Я добавил Exit Sub, потому что я не хотел, чтобы VB выполнял оставшуюся часть скрипта, как только на первый вопрос был дан правильный ответ. Я надеялся, что если генератор придумает 2, тогда появится второй вопрос. Я новичок в VB, поэтому мои навыки отладки ограничены, хотя я пробовал Step Into. – RickTicky
Step Into показывает, что Value может = 1 или = 2, но код будет работать только с первым ответом While While. Он никогда не переходит ко второму, даже если значение равно 2. Я был бы признателен за любые дальнейшие советы, которые вы могли бы предложить. – RickTicky