COBOL - Comando IF - www.cadcobol.com.br



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

IF
Esta instrução condicional permite a avaliação de itens ou condições.
A ação subsequente do programa depende do resultado dessa avaliação.

Semelhante ao comando SE da lógica de programação, podemos ter comandos na procedure que só serão executados se for satisfeita ou não a condição indicada numa cláusula IF.

Esse comando avalia uma condição existente em sua sintaxe e faz com que o programa execute uma determinada ação dependendo do resultado dessa avaliação.
Em outras palavras, podemos dizer que se uma condição for verdadeira, executa uma alternativa, ou então, executa outra alternativa. END-IF, ou um ponto fecham a condição.

Podemos ter também IF aninhados, ou seja, um IF dentro de outro.
O THEN é equivalente ao simbolo ENTAO, que usamos na lógica de programação e o mesmo é facultativo.

O seu formato geral é:




Condições relacionais simples
  • IF identificador-1 EQUAL identificador-2

  • IF identificador-1 LESS THAN identificador-2

  • IF identificador-1 GREATER THAN identificador-2


Operadores relacionais
Símbolo Significado
<  É MENOR DO QUE (IS LESS THAN)
>  É MAIOR DO QUE (IS GREATER THAN)
=  É IGUAL A (IS EQUAL TO)
<=  É MENOR DO QUE OU IGUAL A (IS LESS THAN OR EQUAL TO)
>=  É MAIOR DO QUE OU IGUAL A (IS GREATER THAN OU EQUAL TO)
NOT =  NÃO É IGUAL A
NOT <  NÃO É MENOR
NOT >  NÃO É MAIOR


Primeiro exemplo:
    IF  PESO-BRUTO <= 70
        PERFORM 900-PESO-ABAIXO
    END-IF.

Caso o campo PESO-BRUTO for menor ou igual a 70, o programa irá executar uma rotina chamada 900-PESO-ABAIXO.


Primeiro exemplo: Este mesmo comando tambem poderia ser codificado da seguinte maneira:

    IF  PESO-BRUTO LESS THAN 70 OR PESO-BRUTO EQUAL 70
        PERFORM 900-PESO-ABAIXO
    END-IF.
		   
    IF  PESO-BRUTO < 70 OR PESO-BRUTO = 70
        PERFORM 900-PESO-ABAIXO
    END-IF.

Segundo exemplo: Um comando IF também pode comparar um campo com uma expressão aritmética:
    IF  PESO-BRUTO = PESO-INFORMADO - 5
        PERFORM 900-PESO-ABAIXO
    END-IF.

Terceiro exemplo: Cláusula NEXT SENTENCE COBOL 74:
    IF  PESO-BRUTO = PESO-INFORMADO
        NEXT SENTENCE
    ELSE
        ADD 5 TO PESO-INFORMADO.

Terceiro exemplo: Cláusula CONTINUE COBOL 85 ou COBOL II:
    IF  PESO-BRUTO = PESO-INFORMADO
        CONTINUE
    ELSE
        ADD 5 TO PESO-INFORMADO
    END-IF.

Os comandos do terceiro exemplo tambem poderia ser codificado da seguinte maneira: COBOL 74 ou COBOL 85
    IF  PESO-BRUTO NOT EQUAL PESO-INFORMADO
        ADD 5 TO PESO-INFORMADO.

No COBOL 85 a expressão NEXT SENTENCE também poderá ser utilizada desde que não se coloque o END-IF no final do comando.

Quarto exemplo: COBOL 74

Instrução condicional aninhada:

Uma intrução condicional aninhada é um comando IF que contém outros comando IF de nível hierárquico inferior.

    IF  PESO-BRUTO = PESO-INFORMADO
        IF  PESO-BRUTO LESS THAN 70
            PERFORM 900-PESO-ABAIXO
        ELSE
            PERFORM 910-PESO-NORMAL
    ELSE
        PERFORM 920-PESO-ACIMA.

Quarto exemplo: COBOL 85/COBOL II

Instrução condicional aninhada:

Uma intrução condicional aninhada é um comando IF que contém outros comando IF de nível hierárquico inferior.

    IF  PESO-BRUTO = PESO-INFORMADO
        IF  PESO-BRUTO LESS THAN 70
            PERFORM 900-PESO-ABAIXO
        ELSE
            PERFORM 910-PESO-NORMAL
        END-IF
    ELSE
        PERFORM 920-PESO-ACIMA
    END-IF.

Veja também