Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
09.05.2015
Размер:
725.5 Кб
Скачать

2.13. Тип variant

Тип Variant предназначен для представления значений, которые могут динамически изменять свой тип. Если любой другой тип переменной зафиксирован, то в переменные типа Variant можно вносить переменные разных типов. Шире всего тип Variant применяется в случаях, когда фактический тип данных изменяется или неизвестен в момент компиляции.

Тема 3. Блок принятия решений: операторы ветвления

Блок принятия решений предназначен для выполнения или невыполнения определенного кода в зависимости от определенных условий.

3.1 Оператор if

Классической конструкцией условного оператора является If...В этой конструкции действие (оператор или группа операторов) выполняется только при условии, когда содержащееся в конструкции логическое выражение имеет значение True(Истина). В противном случае действие пропускается.

В Object Pascal оператор ifрекомендуется использовать совместно с блокамиbegin-end.Это позволяет избежать многих проблем. Например, если к одному оператору, выполняемому по условиюif, нужно добавить еще один, а блокаbegin-endнет, то программист может не заметить, что он добавляет новый оператор "мимо" оператораif. Если же блокbegin-endесть, то не заметить это трудно. Синтаксис оператораifвObject Pascalимеет следующий вид:

If условие1 then

begin

[операторы1; ]

end

else if условие2 then

begin

[операторы2; ]

end

else if условиеN then

begin

[onepaторN; ]

end

else

begin

[операторыХ; ]

end;

Фрагмент операторы1выполняется, еслиусловие1имеет значениеTrue.Фрагментоператоры2выполняется, еслиусловие1ложно, аусловие2истинно. ФрагментоператорыNвыполняется, если все предыдущие условия ложны, аусловиеNистинно, наконец, фрагментоператорыХвыполняется, если все условия отусловие1доусловиеNложны.

Оператор ifможет содержать произвольное количество предложенийelse if, и только одно предложениеelse.

3.3Операторcase

Для принятия сложных решений (особенно при наличии нескольких условий) можно воспользоваться оператором Case.

Оператор caseязыкаObject Pascalпохож на операторSelect Caseязыка VB. Главное отличие между ними состоит в том, что операторSelect Caseможет проверять строки и вещественные числа, а операторcaseработает только с порядковыми типами, включая целые и символы. Если при программировании наObject Pascalвозникает необходимость проверки строк или вещественных значений, то следует воспользоваться операторомif. Синтаксис оператораcaseвObject Pascal имеет следующий вид:

case УправляющееВыражение of

список1 : begin

операторы1-,

end;

список2 : begin

операторы2;

end;

. . . . . . . . . . . . . . . . . . . . . . . . . .

cnucoкN : begin

опеpaторыN;

end;

else begin

операторыХ;

end;

end;

В этом синтаксисе значение управляющего выражения сравнивается со значениям выражений в списках. Управляющее выражение должно иметь порядковый тип, например Integer,CharилиBoolean. Значение каждого выражения из списков должен иметь порядковый тип, кроме того, оно должно быть вычислимо во время компиляции. Например, 12, True, 4 - 9*5, 'X' иInteger('Z') являются допустимыми выражениями списков, однако использование в этих выражениях переменных и вызовов большинства функций не допускается. Список выражений может также содержать поддиапазон в форме

Первое_выражение .. Последнее_выражение.

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

Оператор caseможет содержать произвольное количество списков выражений, но только одно предложениеelse. Операторcaseвыполняется следующим образом. Если значение управляющего выражения совпадает со значением какого-либо выражения списков, то выполняется блок операторов, ассоциированный с этим списком, после чего управление передается оператору, следующему за оператором case. Если значение управляющего выражения совпадает со значениями нескольких выражений списков, то выполняется блок первого (верхнего) списка. Если совпадения значений не произошло ни для одного выражения списков, то выполняются операторы блока else. Предложение else не обязательно, однако его использование гарантирует реакцию оператора case на любое непредвиденное значение управляющего выражения. Если значение управляющего выражения не совпадает ни с одним значением выражений списков и предложения else нет, то не выполняется ни один блок оператора case и управление передается следующему за ним оператору.

Соседние файлы в папке разработка и стандартизация