Опубликован: 31.08.2006 | Уровень: специалист | Доступ: платный
Лекция 7:

Использование условных структур

Использование логических операторов в условных выражениях

Если вы хотите включить в вашу структуру выбора более одного критерия выбора, то в структуре 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
  1. Отобразите в Редакторе кода процедуру события Button1_Click.
  2. Измените оператор Dim в начале этой процедуры события так, чтобы он объявлял также переменную Pass типа String. Используйте синтаксис:

    Dim UserName, Pass As String
  3. Между оператором InputBox и оператором If...Then этой процедуры (то есть между второй и третьей его строками) добавьте следующий оператор:

    Pass = InputBox("Введите пароль.")
  4. Измените оператор If...Then на следующий:

    If UserName = "Генри" And Pass = "цветок" Then

    Теперь этот оператор включает логический оператор And, который, прежде чем пропустить в систему пользователя Генри, проверяет имя пользователя и пароль.

  5. Измените оператор ElseIf на следующий:

    ElseIf UserName = "Феликс" And Pass = "листок" Then

    Логический оператор And добавляет проверку пароля "листок" для пользователя Феликс.

    Совет. Готовое приложение Password Validation находится в папке c:\vbnet03sbs\Гл.6\password validation.

  6. Щелкните на кнопке Start (Начать) стандартной панели инструментов. Программа запустится на выполнение в среде разработки.
  7. Щелкните на кнопке Войти, введите Генри, а затем щелкните на OK. Программа запросит у вас пароль.
  8. Введите цветок, а затем щелкните на OK. Условное выражение And становится равным True, и программа приветствует пользователя Генри.
  9. Чтобы закрыть окно сообщения, щелкните на OK.
  10. Щелкните на кнопке Войти, введите Феликс, а затем щелкните на OK. Программа запросит у вас пароль.
  11. Введите листок, а затем щелкните на OK. Программа пропускает пользователя Феликс - пароли работают!
  12. Теперь попробуйте использовать имена пользователей Генри и Феликс с некорректным или пустым паролем. Вы обнаружите, что они не работают, программа завершается и возвращается среда разработки.

    Совет. Если вы хотите написать полноценную версию программы Password Validation, то рассмотрите возможность поместить текстовое поле для ввода пароля непосредственно в форме. Объекты текстового поля поддерживают свойство PasswordChar, которое вы можете использовать для отображения при вводе символов-заменителей вводимых знаков, например звездочки (*), и свойство MaxLength, которое позволяет вам ограничить число вводимых символов.

Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Виталий Григорьев
Виталий Григорьев
Россия, москва, мгсги, 2011
Надежда Серекпаева
Надежда Серекпаева
Россия, Тюмень, Тюменский индустриальный институт, 1992