Продолжение. Смотрите другие части статьи: Часть 1,Часть 2,Часть 3,Часть 4
Итак, в прошлый раз мы добились поставленной цели и получили вполне работоспособную программу, однако, ее необходимо усовершенствовать. Предположим, что вы забыли задать интервал генерируемых чисел и сразу нажали кнопку "Generat a number". Запустите программу и без указания значений Max и Min нажмите на Max и Min, как видите, программа выдала сообщение об ошибке, - для выхода нажмите на кнопку "End".
Давайте попробуем исправить эту ошибку таким способом, чтобы программа в таких случаях выдавала сообщение об ошибке с текстом: "Вы забыли указать значения Max и Min".
Для этого случая мы используем конструкцию типа If .... Then (Если ... то), после If необходимо записать условие, а после Then записываются операции, которые выполняются, если условие верно (True) и не выполняются если условие не верно (False).
If Условие Then Выполнить
Например,
Dim x, y
x=5
If x<4 Then y=5
If x>4 Then y=3
В этом случае мы сначала инициализируем переменные (x) и (y), затем переменной x присваиваем значение 5, и задаем условие, - если (x) меньше 4, то y=5, а, если x>4, то y=3. Следовательно после выполнения данных операций (y) будет присвоено значение 3, т.к. 5>4. Если после слова Then надо использовать несколько операторов, то условиеIf ... Then необходимо завершить оператором End If, например:
Dim x, y
x=5
If x<4 Then
y=5
x=y
End If
В этом случае если x<4, то (y) присваивается значение 5, а (x) присваивается значение (y), т.е. тоже 5. Для выполнения различных операторов в зависимости от условия в Visual Basic используется конструкция If .... Then ... Else (Если ... То ... В обратном случае), после Else следуют операторы, которые выполняются, если условие If не верно (False), например:
Dim x, y
x=5
If x<4 Then
y=5
x=y
Else
y=4
x=y
End If
Т.к. x=5, то условие x<4 не верно, следовательно будет выполняться блок, следующий за оператором Else, т.е. (y) будет присвоено значение 4, а (x) также значение 4.
В условии после оператора If можно задавать несколько параметров, указывая характер их проверки на верность: если между условиями записать (Or), то условие будет верным, если одно из выражений является true, а если между условиями записать (And), то оно выполнится только в том случае, если оба выражения верны. Например:
Dim x, y
x=2
y=3
If x>4 Or y<2 Then
y=5
x=y
Else
y=4
x=y
End If
В этом случае будет выполняться первый блок, т.к. второе выражение удовлетворяет условию, однако, если вместо (Or) мы запишем (And), то будет задействован второй блок - после оператора Else.
А теперь давайте преобразуем нашу программку, как было задумано в начале урока. Дважды щелкните на кнопке "Generat a number" и составьте следующий код для данной кнопки:
Private Sub Command1_Click()
Dim Max
Dim Min
If txtMax.Text = "" Or txtMin.Text = "" Then
MsgBox "Вы забыли указать значения Max и Min"
Else
Max = txtMax.Text
Min = txtMin.Text
lblNumber.Caption = Int((Max - Min) * Rnd() + Min)
End If
End Sub
MsgBox выводит на экран сообщение в окошечке с кнопкой "Ok".
Теперь запустите приложение и, ничего не набирая в полях Max и Min, нажмите на кнопку "Generat a number", как видите появилось наше сообщение (Рис. 18).
Рис.18 Подсказка об ошибке
Нажмите на кнопку "Ok", и данное сообщение будет появляться до тех пор, пока вы не укажите максимальное и минимальное значения. Конечную версию программы вы можете увидеть на моем сайте - в разделе "Программы" под названием"Random Number ".
Ну все, вроде как программка готова, осталось лишь рассмотреть вопрос ее компиляции для получения полноправной Виндоусовской программы, оставим это на следующий раз.