A estrutura if... then...:

Se você parar um instante para pensar, verá que um programa nada mais é do que um conjunto determinado de testes e decisões, que operam com as variáveis. Por exemplo, se determinada variável tem um determinado valor, então o programa faz uma coisa, senão faz outra. Como é isso na linguagem do Delphi?

   if... then...

Ou seja, if (se alguma coisa for verdadeira) then faz o que se segue, senão ignora essa programação e segue em frente. Por exemplo: digamos que nosso programa tem uma variável chamada Valor e que devemos, em determinado ponto, verificar se ela contém o valor 5. Se tiver, devemos acrescentar mais 3 a ela. A programação seria feita da seguinte forma:

   if Valor = 5 then Valor:= Valor + 3;

Note que o "=" usado na comparação é diferente do ":=" usado na atribuição. As atribuições (igualdade forçada, ou seja, "faça ser igual a") são sempre escritas com o sinal ":" e o sinal "=".

Pela nossa explicação, Se Valor for igual a 5, será feita a soma (Valor:= Valor + 3). Se valor for diferente, a expressão será ignorada e o Delphi passa a execução para a próxima linha. Porém pode ser preciso uma alternativa a simplesmente ignorar as instruções seguintes. Por exemplo, se Valor for igual a 5, some 3 a ele, caso contrário diminua 2. A estrutura que usamos, neste caso é

   if... then... else...

Ou seja:

  if Valor = 5 then Valor:= Valor +3 else Valor:= Valor -2;

Preste muita atenção pois Valor:= Valor -2 só será executada quando Valor for diferente de 5 e será ignorada quando Valor for 5. A execução é de uma ou outra.

Também é comum ser preciso executar mais de uma operação, quando a verificação for verdadeira. Por exemplo: se Valor for igual a 5, então some 3 e some 7 à variável Px. Nestes casos usamos os blocos begin... end;.

   if Valor = 5 then begin
     Valor:= Valor + 3;
     Px:= Px + 7;
   end;

Da mesma forma, podemos usar o else com blocos:

   if Valor = 5 then begin
     Valor:= Valor + 3;
     Px:= Px + 7;
   end else begin
     Valor:= Valor - 2;
     Px:= Px - 3;
   end;

Note que o end antes do else não possui o ";".

É possível também fazer duas comparações, ou seja, só somaremos 3 à variável Valor se Valor for igual a 5 e se Px for igual a 7:

   if (Valor = 5) and (Px = 7) then Valor:= Valor + 3;

Nesses casos, as comparações devem ficar entre parênteses e a instrução ou bloco a seguir só serão executados se ambas as coparações forem verdadeiras. Atenção a este detalhe: uma comparação é verdadeira quando ela respeita o que foi escrito e não necessariamente representa uma igualdade. Estude as comparações a seguir:

   if (Valor > 5) and (Px > 7) then...
   if (Valor = 5) and (Px <> 7) then...
   if (Valor < 5) or (Px = 7) then...
   if (Valor <> 5) or (Px = 7) then...


online