User Tools

Site Tools


desvio_condicional_completo_if-then-else

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.
desvio_condicional_completo_if-then-else.txt · Last modified: 2019/04/24 11:43 by castilho