Чтобы понять, что означает условный оператор If и вся конструкция If then else, ее просто нужно перевести на русский язык.
итак - If ... then... else..., - это тоже самое, если бы мы сказали по русски:
если... тогда... иначе.... Оператор If - не зря назван условным, он предназначен для работы с условиями. К программированию на Delphi это имеет следующее отношение... Допустим нам нужно, чтобы программа произвела какие нибудь действия, в зависимости от исхода какого нибудь события, например:
если a<>b тогда c=d+e иначе c=d*e ,
Запрос корректен, вполне понятен, но как его реализовать программно? Тут как раз к нам на помощь и приходит конструкция, If then else, - призванная реализовать нашу задумку. Записываем, теперь то же условие, только уже на языке понятном программе:
var
a,b,c,d,e: Integer;
begin
if a<>b then //если a<>b тогда;
с:=d+e
else //иначе, выполнить действия ниже;
c:=d*e;
end;
Кстати, применение секции else в нашей конструкции, не является обязательным, если мы например хотим сформулировать условие, без else, например:
var
a,b,c,d,e: Integer;
begin
if a<>b then // если a<>b тогда с=d+e иначе - ничего не делать;
с:=d+e;
end;
он тоже будет работать. Здесь только важно обратить внимание на синтаксис. Если мы применяем постусловие else, то после выражения, за которым оно следует, знак - ; (точка с запятой) - не ставится. Если мы не применяем постусловие - else, тогда наоборот знак - ; (точка с запятой) - ставится обязательно. Если нужно, чтобы после проверки условия выполнился - ряд операций, тогда этот ряд после "if - then" нужно заключить в конструкцию "begin - end". Например мы хотим, чтобы после проверки if a<>b then выполнились не только с:=d+e, но еще f:=f*h, и i:=j/k, тогда пишем код следующим образом:
var
a,b,c,d,e,f,g,h,i,j,k: Integer;
begin
if a<>b then // если a<>b тогда;
begin
с:=d+e;
f:=f*h;
i:=j/k;
end;
end;
Если все-таки нужно применить постусловие else, например, в случае, если a<>b - ложно, выполнить - l:=m-k, Тогда после - end, идущего перед else, знак - ; (точка с запятой) - не ставится. См пример ниже:
var
a,b,c,d,e,f,g,h,i,j,k,l,m,k: Integer;
begin
if a<>b then // если a<>b тогда с=d+e иначе - ничего не делать;
begin
с:=d+e;
f:=g*h;
i:=j/k;
end
else
l:=m-k;
end;
Вот собственно и все центра по применению нашего условного оператора. Надеюсь теперь понятно, что такое if then else, для чего он нужен и почему он называется условным?
Далее рассмотрим некоторые тонкости. Например если в операции if - then нам нужно рассмотреть несколько условий, например
если a<>b и z<=0, тогда выполнить с:=d+e;
мы эти свои два условия a<>b и z<=0 объединяем при помощи логической операции and, а сами условия берем в скобки.
var
a,b,c,d,e,z: Integer;
begin
if (a<>b) and (z<=0) then // если a<>b и z<=0, тогда;
с:=d+e;
end;
здесь у нас and - означает и, а еще можно объединять условия при помощи логических операций or - или, not - не, или других операций - xor например.
Еще, отдельного рассмотрения требует вложенность условий, например когда мы хотим реализовать следующее:
если a<>b тогда проверяем если z<=0 тогда c:=d+e; иначе c:=0;
Записываем:
var
a,b,c,d,e,z: Integer;
begin
if a<>b then
if z<=0 then // если a<>b и z<=0;
с:=d+e
else // относится к if где - z<=0
c:=0;
c:=0;
end;
В этом примере не все условные операторы имеют постусловие else. И чтобы понимать к какому из упомянутых дважды в нашем коде - if, относится постусловие else, в Delphi существует правило, - зарезервированное слово else, всегда относится к ближайшему оператору if, которое с else еще не было связано.
Ну вот наверное и все, что я хотел рассказать вам в своей небольшой статейке,
надеюсь было интересно,
до новых встреч...
И не забывайте - После, операторов, выражений и пр. перед словом - else, знак - ; (точка с запятой) - не ставится.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.