Nesta segunda e última variante, é possível executar um comando desejado apenas se uma condição booleana for satisfeita, ou seja, for avaliada como true e ao mesmo tempo garantir que um segundo comando seja executado tão somente se a condição booleana for avaliada como false.
Sintaxe:
if <expressao booleana> then <comando_1> else <comando_2>;
Note que as palavras if, then e else são reservadas. O comando a ser executado é único, tanto o primeiro quanto o segundo. Se o programador precisar de uma sequência de comandos, então deve usar um delimitador de bloco (ver seção blocos). Observar também que, como em Pascal todo comando termina por ponto-e-vírgula e, neste caso, o comando if-then-else termina somente após <comando_2}, então o ponto-e-vírgula aparece apenas no final, e não no meio da construção, o que é um erro comum que principiantes cometem: colocar “;” antes de um else.
Exemplo:
program exemplo_condicional_3; var n: integer; begin writeln('Informe um numero inteiro positivo: '); read(n); if (n mod 2) = 0 then writeln('O numero ', n,' eh par.') else writeln('O numero ', n,' eh impar.'); writeln ('fim'); end.
O programa anterior imprime a mensagem “O numero n eh par.” apenas e tão somente se o resto da divisão inteira de n por 2 for nulo. Caso contrário, a mensagem “O numero n eh impar.” será impressa. Independentemente do desvio realizado, a mensagem “fim”“ é exibida na tela.
Assim, uma maneira de distinguir o desvio condicional simples do completo, é visualizar o else como parte opcional do comando if.
No exemplo a seguir, o programa gera um menu de opções. Existe uma outra forma mais adequada de fazer o mesmo , utilizando o comando case, que será visto na seção Comando de desvio condicional por caso (case).
Exemplo:
program par_impar; var opc: integer; begin writeln('------ M E N U ------'); writeln(' 1 - Cadastro'); writeln(' 2 - Busca'); writeln(' 3 - Ajuda'); writeln(' 4 - Sair'); writeln('---------------------'); read(opc); if (opc = 1) then writeln('Cadastrando...') else if (opc = 2) then writeln('Buscando...') else if (opc = 3) then writeln('Mostrando ajuda...') else if (opc = 4) then writeln('Saindo do programa...') else writeln('Opcao Invalida'); end.