COBOL - Loop Declarações


Advertisements

Existem algumas tarefas que precisam ser feitas e mais uma vez como ler cada registro de um arquivo até o final. O loop declarações utilizadas em COBOL são os seguintes:

  • Execute Thru
  • Execute até
  • Executar Vezes
  • Execute diversos

Execute Thru

Execute Thru é usado para executar uma série de parágrafo, dando o primeiro e último parágrafo os nomes em sequência. Após a execução do último parágrafo controle é devolvido.

Em-linha Executar

As declarações dentro do EXECUTE será executado até FINAL DE EXECUTAR é atingido.

Sintaxe

Sintaxe é a seguinte de linha faça o seguinte:

PERFORM 
   DISPLAY 'HELLO WORLD'
END-PERFORM.

Fora-de-linha Executar

Aqui, um comando é executado em um ponto e, em seguida, o controle é transferido para outro parágrafo ou seção.

Sintaxe

Sintaxe é a seguinte de fora-de-linha executar:

PERFORM PARAGRAPH1 THRU PARAGRAPH2

Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM DISPLAY 'IN A-PARA'
   END-PERFORM.
   PERFORM C-PARA THRU E-PARA.
   
   B-PARA.
   DISPLAY 'IN B-PARA'.
   STOP RUN.
   
   C-PARA.
   DISPLAY 'IN C-PARA'.
   
   D-PARA.
   DISPLAY 'IN D-PARA'.
   
   E-PARA.
   DISPLAY 'IN E-PARA'.

JCL para executar o programa em COBOL.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

IN A-PARA
IN C-PARA
IN D-PARA
IN E-PARA
IN B-PARA

Execute até

A execute até', um parágrafo é executado até que a condição se torne verdadeira. Com o teste antes é a condição padrão e indica que a condição é verificada antes da execução de comandos em um parágrafo.

Sintaxe

Sintaxe é a seguinte de executar até:

PERFORM A-PARA UNTIL COUNT=5

PERFORM A-PARA WITH TEST BEFORE UNTIL COUNT=5

PERFORM A-PARA WITH TEST AFTER UNTIL COUNT=5

Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-CNT PIC 9(1) VALUE 0. 

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA WITH TEST AFTER UNTIL WS-CNT>3.
   STOP RUN.
   
   B-PARA.
   DISPLAY 'WS-CNT : 'WS-CNT.
   ADD 1 TO WS-CNT.

JCL para executar o programa em COBOL.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

WS-CNT : 0
WS-CNT : 1
WS-CNT : 2
WS-CNT : 3

Executar Vezes

Em 'executar vezes', um parágrafo será executado o número de vezes especificado.

Sintaxe

Sintaxe é a seguinte para executar vezes:

PERFORM A-PARA 5 TIMES.

Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA 3 TIMES.
   STOP RUN.
   
   B-PARA.
   DISPLAY 'IN B-PARA'.

JCL para executar o programa em COBOL:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

IN B-PARA
IN B-PARA
IN B-PARA

Execute diversos

Em executar diferentes, um ponto será executado até que o estado até frase se torna verdadeiro.

Sintaxe

Sintaxe é a seguinte para executar diferentes:

PERFORM A-PARA VARYING A FROM 1 BY 1 UNTIL A=5.

Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-A PIC 9 VALUE 0.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA VARYING WS-A FROM 1 BY 1 UNTIL WS-A=5
   STOP RUN.
   
   B-PARA.
   DISPLAY 'IN B-PARA ' WS-A.

JCL para executar o programa em COBOL:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

IN B-PARA 1
IN B-PARA 2
IN B-PARA 3
IN B-PARA 4

IR PARA Declaração

VÁ PARA A declaração é usado para alterar o fluxo de execução de um programa. Em declarações transferência vai apenas no sentido do avanço. Ele é usado para sair de um ponto. Os diferentes tipos de IR PARA as declarações utilizadas são as seguintes:

Incondicional IR PARA

GO TO para-name.

Subordinada IR PARA

GO TO para-1 para-2 para-3 DEPENDING ON x.

Se 'x' é igual a 1, então o controle será transferido para o primeiro parágrafo e se 'x' é igual a 2, então o controle será transferido para o segundo parágrafo, e assim por diante.

Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-A PIC 9 VALUE 2.
   
PROCEDURE DIVISION.
   A-PARA.
   DISPLAY 'IN A-PARA'
   GO TO B-PARA.
   
   B-PARA.
   DISPLAY 'IN B-PARA '.
   GO TO C-PARA D-PARA DEPENDING ON WS-A.
   
   C-PARA.
   DISPLAY 'IN C-PARA '.
   
   D-PARA.
   DISPLAY 'IN D-PARA '.
   STOP RUN.

JCL para executar o programa em COBOL:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

IN A-PARA
IN B-PARA 
IN D-PARA 
Advertisements