
Глава IV Операторы Delphi
Рассмотрим основные операции, которые определены в Delphi
Простые операторы
а) оператор присвоения
< идентификатор 1 > : = < идентификатор 2 >;
б) оператор перехода
GOTO < метка >
в) оператор вызова процедуры или функции
< имя > [ фактические параметры ];
< имя > – идентификатор процедуры или функции.
2.Сложные (составные) операторы
а) составной оператор
begin
----
END;
б) условный оператор
IF < условие > then < оператор 1 > else < оператор 2 >;
в) операторы повторений
FOR < параметр цикла >; = < начальное значение > to < конечное значение > do < оператор >
оператор цикла WHILE с предисловием
while < условие > do <оператор >;
оператор цикла REPEAT…UNTIL с проверкой условия
repeat <тело цикла > <условие >
4) оператор выбора CASE
CASE <ключ выбора > of <список выбора > [else <операторы ] end ;
I Простые операторы Оператор присвоения
Оператор присваивания " := " (между двоеточием и знаком «равно» нет пробела!!!). Если мы хотим присвоить переменной intCount значение 12, то мы должны записать такую строку:
intCount :=12;
Данное выражение является командой для компилятора (вместо слова команда обычно используют более общее понятие – оператор). Заметьте, оператор присваивания (как и любой другой) заканчивается символом " ; ". Есть служебные слова: begin и end – они являются границами (скобками) составного оператора, поэтому после begin " ; " не ставится, но после команд внутри составной команды точка с запятой ставятся обязательно.
Оператор перехода GOTO < метка >
При написании программ часто бывает необходимо сделать так, чтобы при определенных условиях некоторый участок кода был пропущен, или возникает необходимость перескочить в какое-то место программы или подпрограммы. То есть совершить переход. Для этого служит оператор безусловного перехода – GoTo. Для того чтобы использовать его в программе мы должны определить те места программы, к которым нам нужно будет перейти и пометить их. Для этого служат метки. Метки описываются в начале процедуры или программы в разделе описаний. После того как метка описана, ее можно использовать внутри блока. Доля этого перед выделяемым участком программы записывается имя метки с «двоеточием» на конце. Для того чтобы перейти на эту метку необходимо записать GoTo <имя метки>. (Примечание: следует различать метки внутри программы, которые являются элементами языка Object Pascal, и компонент TLabel, как часть визуальной среды Delphi)
Procedure Calculate;
Label first_label;
Var x, y : integer;
z : Extended;
Begin
first_label: x :=StrToInt(Edit1.Text);
y := StrToInt(Edit2.Text);
z := x/y;
Memo.Lines.Add(IntToStr(x) + ’ разделить на ’ + IntToStr(y)
+ ‘ равно ’ + FloatToStr(z));
GoTo first_label;
End;
Данный участок программы получает первое число из компонента Edit1, второе число из компонента Edit2, производит деление и вывод результата, а затем вновь переходит к получению чисел из строк ввода. Данный пример приведен только для иллюстрации работы с метками. Если вы попытаетесь вызвать данную процедуру из программы, то машина зависнет.
Рассмотрим пример, где этот оператор применяется наиболее часто:
Procedure Calculate;
Label first_label;
Var x, y : integer; z : Extended;
Begin
first_label: x := StrToInt(Edit1.Text);
y := StrToInt(Edit2.Text);
IF y<>0 THEN z := x/y;
Memo.Lines.Add(IntToStr(x) + ’ разделить на ’ + IntToStr(y)
+ ‘ равно ’ + FloatToStr(z));
IF MessageDlg('Начать заново?',mtConfirmation,[mbYes,mbNo],0)=mrNo
Then Exit ELSE GoTo first_label; End;
По завершении вычислений выдается диалоговое окно с вопросом «Начать заново?» и две кнопки «Да» и «Нет». Если пользователь выбирает нет, то программа заканчивает свою работу, если же отвечает да, то программа по оператору безусловного перехода «перескакивает» на начало вычислений. Иногда оператор безусловного перехода используется для того, чтобы пропустить какую-то часть программы.
В настоящее время этот оператор применяется очень и очень редко, поскольку уже давно доказано, что при написании программ вполне можно обойтись и без него. Показателем класса программиста является, насколько редко он использует этот «злосчастный» оператор. Если вы все же используете его в своей программе, то следует избегать «прыжков» извне внутрь составных операторов-циклов, да и вообще внутрь составных операторов.
может привести к ошибке или сбою в программе. А конструкция, когда управление передается изнутри составного оператора во внешнюю часть, встречается достаточно часто.
При практическом программировании на языке Object Pascal необходимость в использовании оператора безусловного перехода возникает не часто, хотя иногда один переход позволяет избежать очень широких циклов.