Использование условных структур
Использование логических операторов в условных выражениях
Если вы хотите включить в вашу структуру выбора более одного критерия выбора, то в структуре If...Then и ElseIf вы можете проверять более одного условного выражения. Эти дополнительные условия объединяются вместе с помощью одного или большего количества логических операторов, перечисленных в следующей таблице:
Логический оператор | Значение |
---|---|
And | Если оба условных выражения равны True, то результат равен True. |
Or | Если одно из условных выражений равно True, то результат равен True. |
Not | Если условное выражение равно False, то результат равен True. Если условное выражение равно True, то результат равен False. |
Xor | Если одно, и только одно, из условных выражений равно True, то результат равен True. Если оба равны True или оба равны False, то результат равен False. (Xor означает "исключающее или".) |
Совет. Когда ваша программа проверяет сложное выражение, которое объединяет различные типы операторов, то сначала она обрабатывает математические операторы, затем операторы сравнения, и только в третью очередь логические операторы.
Следующая таблица содержит список нескольких примеров работы с логическими операторами. В этих выражениях предполагается, что строковая переменная Vehicle содержит значение "Велосипед", а целочисленная переменная Price содержит значение 200.
Логическое выражение | Результат |
---|---|
Vehicle = " Велосипед " And Price < 300 | True (оба условия равны True) |
Vehicle = "Машина" Or Price < 500 | True (одно из условий равно True) |
Not Price < 100 | True (условие равно False) |
Vehicle = " Велосипед " Xor Price < 300 | False (оба условия равны True) |
В следующем упражнении вы измените программу My User Validation так, чтобы она в процессе авторизации пользователя запрашивала у него пароль. Пользователь будет вводить пароль и вы должны изменить условия в структуре выбора If...Then и ElseIf так, чтобы для проверки введенного пароля они использовали оператор And.
Добавление защиты паролем с помощью оператора And
- Отобразите в Редакторе кода процедуру события Button1_Click.
-
Измените оператор Dim в начале этой процедуры события так, чтобы он объявлял также переменную Pass типа String. Используйте синтаксис:
Dim UserName, Pass As String
-
Между оператором InputBox и оператором If...Then этой процедуры (то есть между второй и третьей его строками) добавьте следующий оператор:
Pass = InputBox("Введите пароль.")
-
Измените оператор If...Then на следующий:
If UserName = "Генри" And Pass = "цветок" Then
Теперь этот оператор включает логический оператор And, который, прежде чем пропустить в систему пользователя Генри, проверяет имя пользователя и пароль.
-
Измените оператор ElseIf на следующий:
ElseIf UserName = "Феликс" And Pass = "листок" Then
Логический оператор And добавляет проверку пароля "листок" для пользователя Феликс.
Совет. Готовое приложение Password Validation находится в папке c:\vbnet03sbs\Гл.6\password validation.
- Щелкните на кнопке Start (Начать) стандартной панели инструментов. Программа запустится на выполнение в среде разработки.
- Щелкните на кнопке Войти, введите Генри, а затем щелкните на OK. Программа запросит у вас пароль.
- Введите цветок, а затем щелкните на OK. Условное выражение And становится равным True, и программа приветствует пользователя Генри.
- Чтобы закрыть окно сообщения, щелкните на OK.
- Щелкните на кнопке Войти, введите Феликс, а затем щелкните на OK. Программа запросит у вас пароль.
- Введите листок, а затем щелкните на OK. Программа пропускает пользователя Феликс - пароли работают!
-
Теперь попробуйте использовать имена пользователей Генри и Феликс с некорректным или пустым паролем. Вы обнаружите, что они не работают, программа завершается и возвращается среда разработки.
Совет. Если вы хотите написать полноценную версию программы Password Validation, то рассмотрите возможность поместить текстовое поле для ввода пароля непосредственно в форме. Объекты текстового поля поддерживают свойство PasswordChar, которое вы можете использовать для отображения при вводе символов-заменителей вводимых знаков, например звездочки (*), и свойство MaxLength, которое позволяет вам ограничить число вводимых символов.