O Comando IF
IF <condição> Then <comando>;
Em português:
SE <condição_verdadeira>
ENTÃO <comando_a_ser_executado>
Utilizado quando o programador necessita realizar um ou mais comandos caso determinada condição aconteça. Veja o exemplo na figura:

Este programa lê um número e se este número for par (divisível por 2) ele é mostrado na tela. O símbolo
representa um comando de decisão (no caso, o comando IF). Dentro dele vai a condição que deve ser testada. Caso a condição seja verdadeira (caso o resultado do teste seja verdadeiro), a execução do programa é desviada para o comando Mostrar n. Se ela for falsa a execução não sofre o desvio e o programa acaba.

Em pascal, este programa seria implementado da seguinte forma:
Program Testa_Par; Var n: Integer; BeginReadln(n); IF (n MOD 2) = 0 THEN Writeln(n);End.
Se você deseja executar mais de um comando dentro do desvio, basta inseri-los dentro de um bloco. Um bloco é delimitado pelas palavras BEGIN e END:
IF (n MOD 2) = 0 {* Condição *} THEN Begin {* início de bloco de comandos *} Clrscr; Writeln('o número digitado ', n,' é par'); Readln; End; {* fim de bloco de comandos *}
Eles (os comandos dentro do bloco) só serão executados se a condição for verdadeira.
IF <condição> Then <comando> Else <comando>;
Em português:
SE <condição>
Então <comando_a_ser_executado_se_condição_verdadeira>
SENÃO <comando_a_ser_executado_se_condição_falsa>
Neste caso o programador também pode estabelecer um caminho a ser seguido se a condição for falsa. Veja a figura:

Em pascal, este programa seria implementado da seguinte forma:
Program Testa_Par; Var n: Integer; Begin
Readln(n); IF (n MOD 2) = 0 THEN Writeln('é par') ELSE Writeln('é impar');Clrscr;
End.
Como no caso anterior, para cada lado (verdadeiro ou falso) pode-se utilizar blocos de comandos:
IF (n MOD 2) = 0 {* Condição *} THEN Begin {* início de bloco de comandos p/verdadeiro *} Clrscr; Writeln('o número digitado ', n,' é par'); Readln; End {* fim do bloco - Não vai ponto-e-vírgula *} ELSE Begin {* início de bloco de comandos p/falso *} Clrscr; Writeln('o número digitado ', n,' é par'); Readln; End; {* fim de bloco de comandos *}
O Comando CASE
Imagine que você queira testar se determinado mês está na primavera, verão, outono ou no inverno. Logo, o teste já não é mais binário (verdadeiro ou falso), mas sim composto de 4 valores. Você poderia fazer diversos testes com o comando IF, um para cada intervalo de meses:

Se a condição ou expressão que você necessita testar pode resultar em mais de dois valores, isto é, o teste não vai ser verdadeiro ou falso, mas sim um conjunto de valores, você pode utilizar o comando case:

Em Pascal:
Program Testa_Epoca; Var mes: Integer; BeginReadln(mes);CASE mes OF 12, 1, 2: Writeln('Verão'); {* caso mes seja 12, 1 ou 2 *} 3, 4, 5: Writeln('Outono'); {* caso mes seja 3, 4 ou 5 *} 6, 7, 8: Writeln('Inverno'); 9, 10, 11: Writeln('Outono'); END;End.