среда, 30 октября 2013 г.

If then else


  Чтобы понять, что означает условный оператор 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, знак - ; (точка с запятой) - не ставится.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.