Если вы хотите убедиться в том, что одно значение отлично от другого, следует воспользоваться оператором <>:
if x <> 3 Then
MsgBox "x не равно 3"
End If
Этот оператор бывает особенно полезным в ситуациях, когда требуется проверить, что пользователь ввел значение. Чтобы понять, почему это так, запустите программу из предыдущего примера:
1. Нажмите кнопку Загадать число, чтобы сгенерировать случайное число от 1 до 10.
2. Нажмите кнопку Угадать.
3. В открывшемся окне ввода нажмите кнопку OK или Cancel
Появляется сообщение об ошибке — несовпадение типов. Нажмите кнопку End, чтобы завершить работу программы. Не вдаваясь в подробности процесса отладки, скажу, что ошибка возникла в следующей строке:
guess = CInt(InputBox(msg))
Дело в том, что функция CInt() должна получать данные, преобразуемые в целое число. Если функция вызывается для пустой строки, выдается сообщение об ошибке.
Чтобы предотвратить ошибку, перед проверкой следует убедиться в том, что пользователь ввел некоторое значение. Оператор <> идеально подходит для этой цели! Проверку можно выполнить следующей командой:
|
|
If rс <> "" Then
В переводе на человеческий язык это означает: «Если значение guess не равно пустой строке, то сделать что-то».
4. Отредактируйте процедуру события Click кнопки cmdGuess и приведите ее к следующему виду:
Private Sub cmdGuess__Click()
Dim guess As Integer
Dim msg As String
Dim cap As String
Dim rc As String
‘Создать сообщение
msg = "Введите число от 1 до 10"
‘Получить число от пользователя
rс = InputBox(msg)
‘Убедиться в том, что пользователь ввел значение...
If rс <> "" Then
‘Преобразовать строку в целое число
guess = CInt(rc)
' Число угадано верно?
Select Case guess
Case Is = SecretNumber
' Да! Пользователь угадал!
msg = "Вы угадали!"
cap = "Верно!"
' Вывести сообщение
MsgBox msg, vbExclamation, cap
‘Закончить игру
End
Case Is > SecretNumber
' Нет. Следующая попытка...
msg = "Неверно. Загаданное число меньше".
cap = "Попробуйте снова!"
MsgBox msg, vbInformation, cap
Case Is < SecretNumber
' Нет. Следующая попытка...
msg = "Неверно. Загаданное число больше".
cap = "Попробуйте снова!"
MsgBox msg, vbInformatidn, cap
End Select
Else
msg = "Вы должны ввести число!"
cap = "Введите число!"
MsgBox msg, vbInformation, cap
End If
End Sub
5. Сохраните и запустите проект