Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Многострочный If






Вспомним недавнюю задачу: Если a не равно 4, выполнить операторы b=3 и Print b, а в противном случае - операторы b=0, a=b+5 и с=0. Вот однострочный оператор If, решающий эту задачу:

If a < > 4 Then b=3: Print b Else b=0: a=b+5: с=0

Однако, часто количество операторов после Then и Else бывает гораздо большим, да и сами эти операторы бывают гораздо более сложными и длинными. В этом случае строка становится неудобочитаемой, да и вообще не умещается на экране. Для таких случаев создан многострочный (или блочный) оператор If. Вот как решается наша задача с его помощью:

If a < > 4 Then

b=3

Print b

Else

b=0

a=b+5

с=0

End If

Конструкция End If означает просто, что в этом месте оператор If заканчивается.

Часть Else может и отсутствовать. Например,

If a < > 4 Then

b=3

Print b

End If

 

Самое замечательное в блочном If то, что здесь можно одно за другим проверять несколько условий. Проиллюстрирую на примерах.

Задача: В компьютер вводится целое число a.

· Если a< 0, то компьютер должен сказать " Число отрицательно".

· Если a=0, то компьютер должен сказать " Вы ввели нуль".

· Если a> 100, то компьютер должен сказать " Число большое".

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

 

В любом случае после всего этого компьютер должен сказать " До свидания".

Вот программа:

Private Sub Command1_Click()

a = InputBox(" Введите число")

If a < 0 Then

MsgBox (" Число отрицательно")

ElseIf a = 0 Then

MsgBox (" Вы ввели нуль")

ElseIf a > 100 Then

MsgBox (" Число большое")

Else

Print a ^ 2

End If

MsgBox (" До свидания! ")

End Sub

ElseIf переводят так - " иначе если". Получается вот что: Если a < 0, то ……. иначе если a = 0, то …… иначе если a > 100, то ……

Блочный If выполняется так: Сначала проверяется первое условие (a < 0). Если оно не выполняется, то Visual Basic переходит к проверке второго условия(a = 0) и так далее. Наткнувшись наконец на условие, которое выполняется, Visual Basic выполняет операторы, стоящие после его Then и на этом заканчивает работу, даже если ниже есть условия, которые тоже выполняются. Если не выполняется ни одно из условий, Visual Basic выполняет операторы, стоящие за Else.

 

Вот синтаксис многострочного оператора If:

If условие Then

операторы

операторы

…………….

[ ElseIf условие Then

операторы

операторы

……………. ]

……………………….….

[ Else

операторы

операторы

……………. ]

End If

Частей ElseIf может быть сколько угодно или совсем не быть. Часть Else, если она есть, то одна и стоит последней.

Имейте в виду, что у вас нет права, экономя место по вертикали экрана, объединять строки многострочного оператора If, например, так:

If условие Then операторы ElseIf операторы

и я вам не советую (а часто вы и не сможете) переносить слова Then, ElseIf и другие со своего законного места, например, так:

If условие

Then операторы

ElseIf операторы

 

Задание 24: Компьютер спрашивает пользователя, как его зовут, а затем приветствует его в соответствии с именем: Колю - " Привет", Васю - " Здорово", Джона - " Hi", а остальных - " Здравствуйте". Для Васи, кроме этого, он красит форму в зеленый цвет.

 

Задание 25: Видоизменить диалог с компьютером, начатый в 4.9. Пусть компьютер, узнав возраст человека, дальнейшую беседу ведет по двум вариантам. Если возраст больше 17, то компьютер должен задать вопрос: " В каком институте ты учишься? " и получив ответ, глубокомысленно заметить " Хороший институт". Если же возраст меньше или равен 17, то соответственно - " В какой школе ты учишься? " и " Неплохая школа". После этого, каков бы ни был вариант, компьютер должен попрощаться: " До следующей встречи! ".






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.