Лекция: Многострочный If

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

Ifa <> 4 Thenb=3: Print b Else b=0: a=b+5: с=0

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

Ifa <> 4 Then

b=3

Print b

Else

b=0

a=b+5

с=0

End If

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

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

Ifa <> 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, то соответственно — «В какой школе ты учишься?» и «Неплохая школа». После этого, каков бы ни был вариант, компьютер должен попрощаться: «До следующей встречи!».

еще рефераты
Еще работы по информатике