Ramificação condicional: implementação

A ramificação condicional é uma estrutura de controle que permite tornar a execução do código dependente de condições lógicas.
A ramificação condicional mais comum consiste em um par de palavras-chave, IF e ENDIF. O bloco de código ABAP entre IF e ENDIF só é executado se a condição após IF for cumprida.
Você pode adicionar mais blocos de código ampliando o IF . . ENDIF estrutura por um utilizando a palavra-chave ELSE e um número arbitrário de blocos utilizando a palavra-chave ELSEIF. Ao adicionar a palavra-chave ELSE, você garante que exatamente um dos blocos de código ABAP é sempre executado. Se ELSE estiver em falta, nenhum dos blocos de código ABAP pode ser executado.
Cada IF . . ENDIF palavras-chave são obrigatórias e cada IF deve ter um ENDIF.
O bloco de codificação ABAP que é executado é o seguinte:
- Primeiro, a condição IF é avaliada. Se preenchido, o bloco de código ABAP relacionado é executado e o programa continua após ENDIF.
Somente se a condição IF não for cumprida será a condição após a primeira avaliação ELSEIF. Se preenchido, o bloco de código relacionado é executado e o programa continua após ENDIF.
Isto é efetuado consecutivamente para todas as condições ELSEIF. Se nenhuma das condições for cumprida e a estrutura contiver ELSE, o bloco de código ABAP após ELSE é executado. Caso contrário, nenhum dos blocos de código ABAP é executado.
Dica
Condições lógicas

As condições lógicas são uma combinação de comparações, operações lógicas, expressões e funções que o sistema de tempo de execução avalia para decidir se a condição é verdadeira ou falsa.
O caso de utilização mais comum para condições lógicas é após as palavras-chave IF ou ELSEIF em um IF . . . ENDIF estrutura.
O primeiro exemplo (na figura acima) é uma comparação simples: a condição é verdadeira se os dois objetos de dados, x e y, tiverem o mesmo valor.
O segundo exemplo (na figura acima) é um pouco mais sofisticado: ou o valor de x é maior ou igual a y e menor que o dobro do valor de y, ou é menor ou igual a y e maior que o dobro do valor de y.
O terceiro exemplo (na figura acima) faz uso da função aritmética abs( ) e da expressão lógica BETWEEN <expression 1> AND <expression 2>. A condição é verdadeira se o valor absoluto de x estiver entre o valor absoluto de y e o valor absoluto de duas vezes y.
Para comparações de valores simples, você pode utilizar os operadores =, <>, >, <, >=, and <=. Você pode comparar os valores de não só objetos de dados, mas também muitas outras expressões, como a expressão aritmética 2 * y no exemplo acima.
Nota
Operadores e significados
| Operador | Significado |
|---|---|
| AND | Usado para unir várias expressões lógicas para criar uma nova expressão lógica que só é verdadeira quando todas as várias expressões lógicas são verdadeiras. |
| OR | Usado para unir várias expressões lógicas para criar uma nova expressão lógica que é verdadeira se pelo menos uma das expressões lógicas for verdadeira. |
| NOT | A negação de uma expressão lógica usando NOT cria uma nova expressão lógica que é falsa se a expressão lógica for verdadeira e vice-versa. |
Você pode usar os operadores AND e OR para combinar expressões lógicas e o operador NOT para negar uma expressão. Sem parênteses, NÃO se liga mais forte que AND e AND mais forte que OR.
O ABAP conhece algumas expressões lógicas especiais:
- <data object> IS INITIAL é verdadeiro se <data object>contiver seu valor específico de tipo
- <data object> NÃO É INICIAL é verdadeiro se <data object> contiver um valor diferente do valor inicial específico do tipo
- <data object> ENTRE <expression 1> E <expression 2>
Algumas funções ABAP especiais são funções predicadas. Isso significa que eles próprios são condições lógicas. Por exemplo, Contains( ) é uma função que compara valores em forma de caractere.
