Операторы
Составной оператор
Составной оператор представляет собой группу из произвольного числа любых операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end. Формат составного оператора:
begin <0ператор1>; ...; <ОператорЫ>; end;
Независимо от числа входящих в него операторов, составной оператор воспринимается как единое целое и может располагаться в любом месте программы, где допускается наличие оператора.
Условный оператор
Условный оператор обеспечивает выполнение или невыполнение некоторых операторов в зависимости от соблюдения определенных условий. Условный оператор в общем случае предназначен для организации ветвления программы на два направления и имеет формат:
if <Условие> then <0ператор1> [else <0ператор2> ];
Условие представляет собой выражение логического типа. Оператор работает следующим образом: если условие истинно (имеет значение True), то выполняется оператор1, в противном случае — оператор2. Оба оператора могут быть составными.
Допускается запись условного оператора в сокращенной форме, когда слово else и оператор после него отсутствуют. В этом случае при невыполнении условия управление сразу передается на оператор, следующий за условным.
Для организации ветвления на три и более направлений, можно использовать несколько условных операторов, вложенных друг в друга. При этом каждое else соответствует тому then, которое непосредственно ему предшествует. Из-за возможных ошибок следует избегать большой вложенности условных операторов друг в друга.
Пример условных операторов:
ifX<0 then X:=5+X else X:=2*X;
| |
ifX<0 then X:=5+X;
|
операторы
Операторы цикла служат для организации циклов (повторов). Цикл представляет собой последовательность операторов, которая может выполняться не более одного раза. Группу неповторяемых операторов не называют телом цикла.
Оператор цикла с параметром
Оператор цикла с параметром имеет два следующих формата:
for <Параметр> := <Выражение1> to <Выражение2> do <0ператор>; // +1
<Параметр > := <Выражение1> downto <Выражение2> do <0ператор>; //-1
например:
for i:=0 to n do begin Оператор1; Оператор2; …………… …………… ОператорN; End;
|
|
Оператор цикла с постусловием
Оператор цикла с постусловием целесообразно использовать в случаях, когда тело цикла необходимо выполнить не менее одного раза и заранее неизвестно общее количество повторений цикла. Оператор цикла с постусловием имеет следующий формат:
repeat <0ператор1>;
<ОператорМ>; until <Условие>;
Условие представляет собой выражение логического типа. Операторы, заключенные между словами repeat и until, составляют тело цикла и выполняются до тех пор, пока логическое выражение не примет значение True, т. е. тело цикла повторяется при значении логического выражения, равном False. Так как условие проверяется только в конце цикла, то операторы тела цикла выполняются минимум один раз.
В теле цикла может находиться произвольное число операторов без операторных скобок beginиend. По крайней мере один из операторов тела цикла должен влиять на значение условия, в противном случае произойдет зацикливание.
Приведем для иллюстрации цикла с постусловием расчет суммы десяти значений массива m:
repeat Оператор1; …………… …………… …………… ОператорN; until x<0;
|
Оператор цикла с предусловием
Оператор цикла с предусловием целесообразно использовать в случаях, когда число повторений тела цикла заранее неизвестно и тело цикла может ни разу не выполняться. Этот оператор аналогичен оператору repeat ... until с той лишь разницей, что проверка условия стоит в начале оператора. Формат оператора цикла с предусловием:
while <Условие> do <0ператор>;
Оператор тела цикла выполняется до тех пор, пока логическое выражение не примет значение False, т. е., в отличие от цикла с постусловием, цикл выполняется при значении логического выражения True.
while(i<0) begin mag:=mag+1; i =i /10; end;
|
|
Если перед первым выполнением цикла условие не выполняется (значение логического выражения равно False), то тело цикла не выполняется ни разу, и происходит переход на следующий за оператором цикла оператор.