- •Модуль и его структура
- •Структура модуля
- •Список uses
- •Интерфейс
- •Реализациия
- •Инициализация и завершение
- •Ключевые слова
- •Слово const
- •Слово type
- •Слово var
- •Комментарии
- •Переменные
- •Типы данных и переменные
- •Преобразование типов
- •Знаки операций
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Функции Low и High
- •Динамические массивы
- •Короткая строка
- •Длинная строка
- •Расширенная строка
- •Строка с терминальным нулем
- •Операции со строками Слияние
- •Извлечение символа
- •Управляющие символы в строках
- •Разбиение литерала по строкам программы
- •Сравнение строк
- •Строковые функции
- •Форматирование строк
- •Множества
- •Объявление записи
- •Оператор with
- •Массивы записей
- •Совместимость типов данных
- •Указатели
- •Статические и динамические переменные
- •Размещение динамических переменных
- •Разыменование указателя
- •Управление вычислениями Операторы if, then, else
- •Выполнение нескольких инструкций.
- •Вложенные условия.
- •Циклы Элементы структуры цикла
- •Цикл for…
- •Функции Pred и Succ
- •Цикл while
- •Цикл repeat
- •Управление циклами
- •Оператор goto
- •Оператор case
- •Область видимости идентификаторов
- •Подпрограммы
- •Процедуры и функции
- •Объявление и определение подпрограммы
- •Параметры подпрограмм
- •Локальные процедуры и функции
- •Перегрузка подпрограмм
- •Параметры по умолчанию
- •Включение внешнего файла в модуль
Управление вычислениями Операторы if, then, else
Оператор if используется для проверки некоторого условия с последующим выполнением (или невыполнением) некоторых операторов.
Рассмотрим пример:
var
X : Integer;
begin
X := StrToInt(Edit1.Text);
if X > 10 then
Label1.Caption := 'Вы ввели число больше чем 10.';
end;
В этом фрагменте кода от компонента Edit1 (такой компонент должен быть на форме) мы получаем значение целого числа, которое вводит пользователь. Если введенное число окажется больше 10, значением выражения x > 10 будет True и на экране появится сообщение, а в противном случае – нет. Когда условие истинно, выполняется оператор, который следует сразу после выражения if...then. Иными словами, условная часть оператора следует сразу после then.
Новый термин: Оператор if используется для проверки истинности некоторого условия и выполняет один или несколько операторов если это условие истинно.
Выполнение нескольких инструкций.
Допустим, что при истинном условии необходимо выполнить несколько операторов. В данном случае группу операторов следует объединить в один блок – ограничить ключевыми словами begin – end:
if X > 10 then
begin
Label1.Caption := 'Вы ввели число больше 10.';
DoSomethingWithNumber(X);
end;
Если условное выражение примет значение False, блок кода, связанный с выражением if игнорируется, а выполнение программы продолжается с оператора, следующего за этим блоком.
ПРИМЕЧАНИЕ. При проверки истинности переменной логического типа достаточно употребить ее имя в соответствующем контексте. Пусть
var
FileGood : Boolean;
Тогда вместо if FileGood = True then ReadData;
можно написать if FileGood then ReadData;
Следующий пример показывает как применить операцию отрицания
var
FileGood : Boolean;
begin
FileGood := OpenSomeFile;
if not FileGood then ReportError;
end;
Когда при истинности условия требуется выполнить одно действие, а при его ложности – другое, в состав условного оператора вводят else:
if X = 20 then
DoSomething(X)
else
DoADifferentThing(X);
В этом примере будет выполнено одно из двух действий – либо процедура DoSomething, либо процедура DoADifferentThing.
Новый термин: Оператор else используется совместно с if и обозначает секцию кода, которую следует выполнять когда условие ложно.
Обратите внимание на то, что перед else нет «точки с запятой». Это связано с тем, что вся последовательность if...then...else образует один оператор.
Приведем еще несколько примеров синтаксиса if...then...else
if X = 20 then
DoSomething(X)
else
DoADifferentThing(X);
if X = 20 then
begin
DoSomething(X);
end else
begin
DoADifferentThing(X);
end;
if X = 20 then
begin
DoSomething(X);
X := 200;
Y := 30;
end else
begin
DoADifferentThing(X);
X := 100;
Y := 15;
end;
Вложенные условия.
Операторы if могут быть вложены друг в друга произвольное число раз:
if X > 10 then
if X < 20 then
Label1.Caption := 'Значение X заключено между 10 и 20';
Имейте в виду, что это упрощенный пример. В сложной последовательности вложений легко запутаться, особенно когда много begin – end операторов выделяют блоки кода:
if X > 100 then begin
Y := 20;
if X > 200 then begin
Y := 40;
if X > 400 then begin
Y := 60;
DoSomething(Y);
end;
end;
end else if X < -100 then begin
Y := -20;
if X < -200 then begin
Y := -40;
if X < -400 then begin
Y := -60;
DoSomething(Y);
end;
end;
end;
ПРИМЕЧАНИЕ. Если фрагмент кода содержит две и более последовательностей условий, проверяющих значения одной и той же переменной, то вместо условного оператора лучше применить оператор case (см. ниже).
В рассмотренных примерах условием было простое выражение. Если же необходимо связать несколько выражений, то каждое из них следует заключать в скобки:
if (X = 20) and (Y = 50) then DoSomething;