Чтобы понять, что означает условный оператор 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 тогда с=d+e иначе - ничего не делать;
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; иначе - ничего не делать;
с:=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; иначе - ничего не делать;
с:=d+e
else
// относится к if где - z<=0
c:=0;
end; В этом примере не все условные операторы имеют постусловие else. И чтобы понимать к какому из упомянутых дважды в нашем коде - if, относится постусловие else, в Delphi существует правило, - зарезервированное слово else, всегда относится к ближайшему оператору if, которое с else
еще не было связано.Ну вот наверное и все, что я хотел рассказать вам в своей небольшой статейке, надеюсь было интересно, до новых встреч...
И не забывайте - После, операторов, выражений и пр. перед словом -
else,
знак - ; (точка с запятой) - не ставится.
|