O comando PERFORM
no COBOL executa uma ou mais instruções, podendo fazer isso de forma simples (uma vez) ou repetitiva (em laço). É a principal estrutura para controle de fluxo e repetição na linguagem.
📌 Para que serve
-
Executar um bloco de código (ou parágrafo) uma vez.
-
Repetir instruções até que uma condição seja satisfeita.
-
Iterar com controle de variáveis (
VARYING
,FROM
,BY
,UNTIL
). -
Organizar o código de forma modular e reutilizável.
🧾 Sintaxe básica
✅ Forma simples
PERFORM
instruções.
END-PERFORM.
✅ Forma com repetição
PERFORM
instruções
UNTIL condição.
END-PERFORM.
✅ Forma com controle de variável (loop)
PERFORM VARYING indice FROM valor-inicial BY incremento
UNTIL condição.
instruções.
END-PERFORM.
✅ Exemplo prático
01 CONTADOR PIC 9(2) VALUE 1.
01 SOMA PIC 9(4) VALUE 0.
PERFORM VARYING CONTADOR FROM 1 BY 1
UNTIL CONTADOR > 10
ADD CONTADOR TO SOMA
END-PERFORM.
DISPLAY "Soma de 1 a 10: " SOMA.
Resultado: Soma de 1 a 10: 55
⚙️ Variedades do PERFORM
Tipo | O que faz | Uso típico |
---|---|---|
Simples | Executa bloco uma única vez | Modularização de código |
UNTIL | Repetição com condição | Laços definidos por regra |
VARYING | Repetição com incremento de variável | Contadores e iterações com índice |
WITH TEST BEFORE | Condição testada antes de entrar no laço | Valor inicial precisa ser válido |
WITH TEST AFTER | Condição testada após executar uma vez | Garante ao menos uma execução |
⚠️ Regras importantes
-
Não suporta
AFTER
, apenasBEFORE
para o teste (por padrão, o COBOL assumeBEFORE
). -
BY
eFROM
não aceitam índices nem variáveis de ponto flutuante. -
Os comandos dentro do
PERFORM
devem ser válidos dentro da Divisão de Procedimentos. -
Não é possível usar nomes de índice em
VARYING
. -
No
PERFORM UNTIL
, a condição deve mudar dentro do laço, ou ele pode entrar em loop infinito.
🧠 Dicas práticas
-
Quando o laço envolve tabelas, prefira
VARYING
para controlar o índice. -
Use
PERFORM nome-do-parágrafo
para melhorar a organização do código. -
Para evitar erros, inicialize todas as variáveis utilizadas em
FROM
eBY
. -
PERFORM
também é usado para chamar parágrafos declarados anteriormente.
PERFORM CALCULAR-SALARIO.
...
CALCULAR-SALARIO.
MULTIPLY HORAS BY VALOR-HORA GIVING SALARIO.
✅ Conclusão
O comando PERFORM
é essencial na estrutura do COBOL. Ele permite modularizar, repetir e controlar o fluxo do programa com clareza. Seja em loops simples ou estruturas complexas, seu uso é indispensável para tornar o código mais organizado e eficiente.