06)Comandos de Desvio Condicional

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;
Begin
Readln(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;
Begin
Readln(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.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: