Comando Se (CONDICAO_eh_Verdadeira) COMANDO1 [senao COMANDO2]

Esse comando é essencial para permitir que sob determinada condição (uma expressão lógica) o fluxo de execução siga um ou outro caminho. Por exemplo, pode-se construir um programa para computar a soma de todas as entradas de um extrato bancário correspondente aos créditos separadas dos lançamentos de débito.
Desse modo, para cada entrada do extrato, deve-se verificar se é um valor positivo, nesse caso ele é acumulado em uma variável para crédito, senão deve-se acumular em uma variável para débito. Ou seja, de acordo com o resultado da avaliação de uma expressão lógica (valor positivo?), deve-se seguir determinado fluxo de execução (um "caminho" de instruções).


Assim, nesse comando, pode-se subordinar a execução de um bloco de comandos por alguma expressão lógica EL e, opcionalmente, pode-se complementar o comando com um bloco Senao, se a EL resultar falso, o bloco senão será executado.


Sintaxe

A sintaxe desse comando em Portugol é:
se ( CONDICAO ) {
  BLOCO_DE_COMANDOS;
  }

ou
se ( CONDICAO ) {
  BLOCO_DE_COMANDOS;
  }
senao {
  BLOCO_DE_COMANDOS;
  }


Exemplo.

Abaixo está um código Portugol para que o usuário digite 2 valores inteiros, que serão armazenados nas variáveis a e b, se o valor de a for menor (estrito) que o valor de b, então será impresso "valor de a" eh menor que "valor de b", senão (ou seja, a condição resultou falso) será impresso "valor de a" eh maior ou igual a "valor de b".
Por exemplo, se forem digitados 2 e 3, nesta ordem (como na figura 2), será impresso no console/terminal 2 eh menor que 3.
programa { 
  funcao vazio inicio (  )  {
    inteiro a <- 0
    inteiro b <- 0
    leia ( a )
    leia ( b )
    se ( a < b )  {
      escreva(a, " ", "eh menor que", " ", b, "\n")
      }
    senao {
      escreva(a, " ", "eh maior ou igual a", " ", b, "\n")
      }
    }
  }
Fig. 1. Diagrama de fluxo de execução do comando de seleção 'se/senao'.


Mais detalhes
Usando uma expressão lógica, esse comando permite selecionar a execução de um conjunto de comandos (pode ser apenas um) de acordo com o resultado da expressão lógica EL. Simbolicamente: Se EL resultar verdadeiro, então execute comandos.
Opcionalmente pode-se utilizar um complemento do tipo senao, ou seja, se a expressão lógica resultar falso, um segundo conjunto de comandos será executado. Simbolicamente:
Se (EL_resultar_verdadeiro), então EXECUTE_COMANDOS_VERDADEIRO, senao EXECUTE_COMANDOS_FALSO.

No exemplo da fig. 2 a expressão lógica EL é para verificar se o valor guardado na variável a é estritamente menor que o valor guardado na variável b. Ali usamos apenas um comando subordinado a cada opção de fluxo, mas poderia-se se usar vários ou mesmo nenhum comando subordinado ao se ou ao senao.


Exemplo Visual.


Na figura 2 está o código visual corresponente ao Portugol do exemplo acima.

Fig. 2. Código visual correspondente ao código do exemplo acima.