Na ciência da computação, estrutura de seleção (ou expressão condicional, ou construção condicional, ou função se-então-senão) é uma estrutura de desvio do fluxo de controle presente em linguagens de programação que realiza diferentes ações/computações dependendo se a condição/seleção é verdadeira ou falsa, em que a expressão é processada e transformada em um valor booleano. Nas linguagens de programação, usamos as palavras em inglês para expressar uma estrutura de seleção, como if, else if e else.[1]
Seleção simples e composta
A condição "se-então(-senão)" é uma estrutura de seleção comum em diversas linguagens de programação. Sua estrutura básica é a seguinte:
Se (condição) Então (bloco de código) Senão (bloco de código) Fim Se
Quando o interpretador encontra o identificador "Se", ele espera em seguida uma condição booleana sob forma de expressão relacional (como por exemplo, "x > 0"), que pode ser verdadeira ou falsa. Se a condição é verdadeira, o bloco de código seguido de "Então" é executado. Caso a condição seja falsa, o bloco de código seguido de "Senão" é executado. Em ambos os casos, após a execução do bloco de código, o fluxo do programa é retornado para o ponto indicado por "Fim Se". Note que a parte do "Senão" é opcional e pode ser omitida. Caso omitida, a estrutura é chamada de seleção simples; caso contrário é chamada seleção composta.
A estrutura "Senão Se" é formada pela composição de estruturas de seleção, e um exemplo de sua estrutura é o seguinte:
Se (condição) Então (bloco de código) Senão Se (condição) Então (bloco de código) Fim Se Fim Se
No exemplo acima, caso a primeira condição seja falsa, o fluxo do programa é desviado para o bloco de código do "Senão", onde há o processamento de outra estrutura de seleção.
Operador ternário
O operador ternário é uma estrutura de seleção composta presente em linguagens de programação derivadas de C, e sua estrutura básica é a seguinte:
(condição) ? (bloco de código do Então) : (bloco de código do Senão)
Seleção de múltipla escolha
A seleção de múltipla escolha compara um dado valor a constantes, desviando o fluxo de código para o ponto indicado pela primeira constante onde há casamento. Sua estrutura básica é:
Escolha X Caso V1: (bloco de código) Caso V2: (bloco de código) Caso V3, V4: (bloco de código) Caso V5…V10: (bloco de código) Caso contrário: (bloco de código) Fim Escolha
No exemplo acima, X
é uma variável e os identificadores Vx
são constantes. Essa sintaxe é genérica e muitas vezes não está disponível em algumas linguagens de programação. No primeiro e no segundo caso são feitos um casamento simples. No terceiro caso é feito um casamento com V3 ou V4. No quarto caso, é feito um casamento com valores entre V5 e V10: V5, V6, V7, V8, V9 e V10. No quinto e último caso é feito um casamento por defeito (que é opcional), isto é, um casamento que é usado caso nenhum outro seja feito.
O término de um bloco de código dentro de uma estrutura de múltipla escolha depende da implementação. Tipicamente, uma palavra reservada é usada no final do bloco. Quando encontrada, o fluxo de código é desviado para "Fim Escolha", terminando a estrutura. Caso a palavra não seja encontrada, várias linguagens de programação especificam que o fluxo de execução de código é continuado no próximo caso encontrado.
Casamento de padrões
O casamento de padrões é uma alternativa mais sofisticada para as estruturas tradicionais de seleção, sendo disponibilizada em algumas linguagens funcionais. Um exemplo é dado abaixo:
case fruta com | "maçã" → (bloco de código) | "coco" → (bloco de código) | "banana" → (bloco de código)
Asserto
Um asserto é uma estrutura de seleção usada em programação que indica que o desenvolvedor asserta que a condição dada é sempre verdadeira. Sua estrutura básica é a seguinte:
Asserte (condição)
É uma estrutura usada para auxiliar a especificação de programas, e para indicar pré-requisitos de blocos de códigos. Por exemplo, uma pré-condição é um asserto adicionado no início de um bloco de código, e determina o conjunto de estados em que o código é esperado ser executado. Da mesma forma, uma pós-condição é um asserto adicionado no final de um bloco de código, determinando o conjunto de estados em que o código é esperado após ser executado (essa técnica é parte do paradigma de programação por contratos).
No uso prático, diversas linguagens de programação modernas oferecem essa estrutura, que é verificada em tempo de execução. Caso a condição seja falsa, a execução é abortada, facilitando a depuração de um sistema.
Notas e Referências
- ↑ Mark Summerfield (2013). Programação em Python 3. [S.l.]: Alta Books. 495 páginas. ISBN 9788576083849
- Valéria Delisandra Feltrim. «Estruturas de Controle - Parte 1» (PDF). Universidade Estadual de Maringá. Consultado em 27 de novembro de 2007[ligação inativa]
- Valéria Delisandra Feltrim. «Estruturas de Controle - Parte 2» (PDF). Universidade Estadual de Maringá. Consultado em 27 de novembro de 2007[ligação inativa]