2015-08-14 2 views
-4

Я создаю учебное приложение для математики для детей на начальном уровне. И мне сложно создать цикл, который будет генерировать 2 случайных числа, а затем проверить правильность/неправильный ответ в 5 раз. также кнопка будет отключена после нажатия 5 раз. Остальные вещи мне понятны, кроме идеи о том, как положить его в цикл. Может кто-то мне помочь, пожалуйста? благодаря! Я попытался использовать FOR LOOP, но, к сожалению, он будет просто петли 5 раз, но он будет проверять только ответ 1 раз. Мне нужно, чтобы он проверил 5 разных ответов.LOOP PROBLEMS в VB.Net

For ctr As Integer = 1 To 5 
     Button3.Enabled = False 
     initialize() 
     If TextBox3.Text = sum Then 
      MsgBox("correct") 
      point = point + 1 

      TextBox3.Focus() 
     Else 
      MsgBox("wrong") 

      MsgBox(sum) 
      TextBox3.Focus() 

     End If 
    Next 
    MsgBox(point) 
+2

Пожалуйста, отредактируйте ваш вопрос, чтобы включить код, с которым вы столкнулись. Если ваш цикл 'For' выполняется 5 раз, а код, выполняющий проверку, находится внутри цикла, он также должен выполняться 5 раз. Вы должны убедиться, что код проверяет что-то другое в каждом цикле. – Blackwood

+0

вот моя идея, сэр, мне нужен цикл, чтобы проверить 5 разных ответов. но проблема в том, что моя петля проверяет один и тот же ответ на 5 раз :(вы можете мне помочь? пожалуйста. Спасибо! – rookProgrammer

+0

Пожалуйста, отредактируйте свой вопрос, чтобы включить соответствующий код. Я не вижу, как кто-то может помочь вам, не видя код. – Blackwood

ответ

0

Если вы хотите обрабатывать пять различных Textboxes в цикле, один из способов сделать это, чтобы создать массив, содержащий все TextBoxes и цикл через массив.

Dim boxes() As TextBox = {TextBox3, TextBoxX, TextBox22, TextBoxBB, TextBoxA} 
For Each box As TextBox in boxes 
    box.Focus() 
    If box.Text = sum Then 
     MsgBox.("correct") 
     point += 1 
    Else 
     MsgBox("wrong") 
    End If 
Next 

В качестве альтернативы, если вы хотите, чтобы пользователь мог ввести пять ответов по одному в одном TextBox, вы можете иметь пользователь нажимает кнопку, каждый раз, когда ответ вводится. Вы должны определить счетчик вне обработчика кликов кнопки.

Private ctr As Integer 

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    ctr += 1 
    If ctr > 5 Then Button3.Enabled = False 
    initialize() 
    If TextBox3.Text = sum Then 
     MsgBox("correct") 
     point += 1 
    Else 
     MsgBox("wrong") 
     MsgBox(sum) 
    End If 
    MsgBox(point) 
End Sub 
+0

Что делать, если у меня есть только одно текстовое поле, а затем я хочу, чтобы мой цикл проверял 5 разных ответов, которые пользователь вводил в этом текстовом поле? У меня есть функция, которая генерирует случайное число от 1 до 15 сэра, это функция initialize(). Спасибо за вашу дополнительную идею! :) – rookProgrammer

+0

@rookProgrammer Вы имеете в виду, что пользователь вводит 5 разных ответов в TextBox при том же время (если да, то как ответы разделены)? Или вы хотите, чтобы пользователь вводил один ответ, а затем, после того, как вы его проверили, пользователь вводит другой, и, следовательно, один из них в общей сложности пять раз? – Blackwood

+0

второй, сэр, это как раз моя идея. – rookProgrammer