Студопедия

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

КАТЕГОРИИ:

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






Правила записи однострочного оператора If






Любой оператор Visual Basic нужно записывать по определенным грамматическим правилам, в противном случак Visual Basic выдает сообщение об ошибке. У каждого человеческого языка есть своя грамматика, включающая в себя правила, по которым должны выстраиваться в цепочку слова и другие элементы языка, чтобы получилось правильное предложение. Совокупность этих правил образует часть грамматики, называемую синтаксисом. В языках программирования тоже есть предложения. Такими предложениями здесь являются операторы. Очевидно, у языков программирования тоже должен быть свой синтаксис, который описывает правила, по которым записываются операторы языка и из операторов составляется программа. После того, как человек запускает программу на выполнение, любая порядочная среда программирования прежде, чем действительно выполнять ее, сначала проверит, нет ли в ней синтаксических ошибок, и если есть, то программу выполнять не будет, а выдаст сообщение, указывающее человеку, в чем ошибка. А Visual Basic проверяет программу еще на стадии ввода кода.

У Visual Basic есть две формы оператора If: однострочная и многострочная. Пока мы пользовались только однострочным If и поэтому приведем правило записи только для него. Приведем это правило в виде синтаксической схемы:

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

Как понимать эту схему? Ее следует понимать, как образец, шаблон записи оператора, указывающий порядок, в котором оператор записывается из отдельных слов. Слова, которые в схеме я записал жирными буквами, при записи оператора просто копируются. Вместо слов, которые в схеме записаны курсивом, нужно при записи оператора подставить то, что они означают. Поясним, что обозначают эти слова.

операторы любой оператор Visual Basic или группа операторов, разделенных двоеточиями
условие пока под условием будем понимать два арифметических или строковых выражения, соединенных знаком сравнения
знак сравнения знаков сравнения шесть: > больше > =больше или равно =равно < меньше < =меньше или равно < > не равно

 

Пример: If 5*a+4 < = a*b Then Print b Else a=b+5

Здесь

Print b - один оператор,

a=b+5 - другой оператор,

5*a+4 < = a*b - условие,

5*a+4 - одно выражение,

a*b - другое выражение,

< = - знак сравнения.

 

В 5.2 вы уже видели, что однострочный оператор If можно записывать в краткой форме. Вот синтаксическая схема для этой формы:

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

Таким образом, это уже вторая синтаксическая схема, касающаяся одного оператора. Удобно же весь синтаксис оператора иметь перед глазами в одной схеме. Соединим две схемы в одну. Вот эта схема:

 

Синтаксическая схема однострочного оператора If:

If условие Then операторы [ Else операторы ]

Квадратные скобки здесь означают, что их содержимое можно писать, а можно и не писать в операторе.

Полезное замечание: Вычисляя выражения, стоящие в условии оператора If, Visual Basic не записывает их значения в память. Например, после выполнения фрагмента - b=6: If b+1> 0 Then s=20 - в ячейке b будет храниться 6, а не 7. То же относится и к выражениям из оператора Print. Например: b=6: Print b+1. И здесь тоже в ячейке b останется храниться 6, а не 7. И вообще, информация в ячейках памяти не меняется при вычислении выражений без присвоения.

Примеры работы оператора If:

ФРАГМЕНТ ПРОГРАММЫ ЧТО НА ЭКРАНЕ
a=10 If a> 2 Then Print "!!! " Else Print "! " !!!
a=4 If a> 5 Then a=a+10 Else a=a-1 Print a  
s=6 If s-8< > 0 Then s=s+10 Print s  
s=6 If s< 0 Then s=s+10 s=s+1 Print s  

 

Задания 15-17:

Определить без компьютера, что будет напечатано при выполнении следующих фрагментов программ:

15. k=20: k=k+10: If k+10< > 30 Then k=8 Else k=k-1

Print k

16. k=20: k=k+10: If k+10 = 30 Then k=8 Else k=k-1

Print k

17. p=1: If p> 0 Then p=p+5

If p> 6 Then p=p+1

Print p

Задания 18-20:

18. В компьютер вводятся два числа. Если первое больше второго, то напечатать их сумму, иначе - произведение. После этого компьютер должен напечатать текст ЗАДАЧА РЕШЕНА.

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

Указание: Для этого его длина должна быть меньше суммы длин двух других отрезков. Замечание: Пока не думайте о том, что слишком длинными могут быть второй или третий отрезки. Об этом – задание 26 из 5.7.

20. Дракон каждый год отращивает по три головы, но после того, как ему исполнится 100 лет - только по две. Сколько голов и глаз у дракона, которому N лет?

 

Если в выражения, входящие в условие оператора If, включить свойства объектов, то вы можете заставить компьютер работать с ними. Например, компьютеру нужно определить, правда ли, что форма красная. Делает это такая программа:

Private Sub Command1_Click()

If Form1.BackColor = vbRed Then MsgBox (" Правда") Else MsgBox (" Неправда")

End Sub

Задание 21: Если кнопка на форме слишком высоко, пусть при нажатии на нее она будет пониже на 200 твипов.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал