🧙♂️ COBOL para Padawans: EXIT, IF THEN ELSE e o Poder dos Condition-Names (nível 88)
Salve jovem padawan em nosso primeiro artigo de 2026, vamos fazer uma revisão e um olhadela geral sobre o IBM Cobol, onde explico os primeiros passos, apresento algumas curiosidades, sintaxes, boas praticas e ajustes para evitar erros. Este artigo é o pontapé inicial de nossa jornada rumo a Jedi. Espero ajudar e qualquer duvida escreva nos comentarios, que terei o maior prazer em clarifica-las e expandir este artigo.
🌱 Introdução: quando o COBOL começa a fazer sentido
Todo padawan que pisa no mundo do IBM Mainframe COBOL cedo ou tarde tropeça nos mesmos pontos:
Para que serve esse tal de EXIT?
Por que existem tantos tipos de IF?
O que diabos é um nível 88 e por que os veteranos o defendem com unhas e dentes?
Este artigo existe para responder exatamente isso — não com teoria acadêmica, mas com sabedoria de produção, aquela adquirida depois de alguns abends, dumps e noites mal dormidas.
🚪 EXIT: o parágrafo solitário (mas fundamental)
O comando EXIT é simples, discreto e poderoso:
Deve ser codificado na margem B
É a única instrução do parágrafo
Marca explicitamente o fim de um parágrafo
300-FIM.
EXIT.Por que isso importa?
O EXIT:
Serve como destino de um PERFORM THRU
Evita execução acidental de parágrafos seguintes
Torna o fluxo do programa previsível
☠️ Easter-egg de produção: programas antigos sem EXIT são mestres em executar lógica indevida no fechamento do batch.
🔢 Parágrafos numerados: herança que ainda faz sentido
100-INICIO.
200-PROCESSA.
300-FIM.Numerar parágrafos não é moda antiga — é organização mental:
Facilita leitura de dumps
Ajuda no debug em batch
Cria uma narrativa lógica no código
Bellacosa rule: batch bom é batch que conta uma história.
🔀 IF THEN ELSE: decisões no mundo real
O IF THEN ELSE permite que o COBOL escolha caminhos:
IF SALDO > 1000000
PERFORM 300-MILIONARIOS
ELSE
PERFORM 200-MENOS-RICOS
END-IFCondição verdadeira → executa o bloco do IF
Condição falsa → executa o ELSE
😅 A maioria dos sistemas corporativos conhece bem o segundo caminho.
🚫 CONTINUE: quando não fazer nada é a melhor opção
IF EMPREGADO-PRESENTE
CONTINUE
ELSE
PERFORM 400-FERIAS
END-IFCONTINUE é uma instrução nula — não faz nada, mas deixa claro que isso foi uma decisão consciente.
Dica de veterano: CONTINUE é mais elegante (e mais seguro) do que um IF vazio.
🏷️ Condition-Names (nível 88): o segredo do COBOL elegante
Os condition-names:
Usam o nível 88
Representam valores válidos de um campo
Tornam o código autoexplicativo
🚗 Exemplo clássico: oficina mecânica
01 TIPO-VEICULO PIC X.
88 SEDAN VALUE 'S'.
88 SUV VALUE 'U'.
88 CAMINHAO VALUE 'C'.IF SEDAN OR SUV OR CAMINHAO
PERFORM CONSERTA-VEICULO
ELSE
PERFORM RECUSA-SERVICO
END-IFAqui o código fala português claro.
🧠 Regras de ouro do nível 88
✔ Não usa PIC ✔ Pode ter valores simples ou múltiplos ✔ O nome deve ser único no programa ✔ É semântica pura — valor com significado
🔢 Par ou ímpar sem dor de cabeça
01 IN-INTEGER PIC 9.
88 NUMERO-PAR VALUE 2 4 6 8.
88 NUMERO-IMPAR VALUE 1 3 5 7 9.IF NUMERO-PAR
PERFORM PAR-PROCESSO
ELSE
PERFORM IMPAR-PROCESSO
END-IFMenos IFs, menos bugs, menos CPU.
📂 Fim de arquivo (EOF) como gente grande
01 FILE-SWITCH PIC X VALUE 'N'.
88 SEM-MAIS-DADOS VALUE 'Y'.PERFORM UNTIL SEM-MAIS-DADOS
READ ARQUIVO
AT END
SET SEM-MAIS-DADOS TO TRUE
END-READ
END-PERFORMSem gambiarras, sem flags mágicas.
✅ SET TO TRUE: o jeito profissional
Evite:
MOVE 'Y' TO FILE-SWITCHPrefira:
SET SEM-MAIS-DADOS TO TRUE✔ Mais legível ✔ Menos dependência de valores ✔ Mais fácil de manter
🧩 Os 4 tipos de condições no COBOL
1️⃣ Class Condition
IF CAMPO IS NUMERICVerifica o tipo do conteúdo.
2️⃣ Sign Condition
IF TOTAL-MULTAS IS ZEROVerifica sinal: POSITIVE, NEGATIVE ou ZERO.
3️⃣ Relation Condition
IF TOTAL-PAGO = TOTAL-DEVIDOComparação direta entre campos.
4️⃣ Condition-Name Condition ⭐
IF NUMERO-IMPAR
PERFORM IMPAR
ELSE
PERFORM PAR
END-IFA mais simples e poderosa.
🎵 Curiosidade: lembra a música de 1978 de Kenny Rogers — "Just Dropped In (To See What Condition My Condition Was In)".
🎯 Conclusão do El Jefe
Dominar EXIT, IF THEN ELSE e condition-names não é detalhe — é o que separa:
Código que apenas funciona
De código que sobrevive décadas em produção
👉 Menos IF encadeado 👉 Menos MOVE mágico 👉 Menos CPU 👉 Menos abend
Padawan que entende nível 88 está a meio caminho de virar Jedi do Mainframe.
Se curtiu, no próximo artigo podemos falar de:
Erros clássicos que só aparecem em produção
Como condition-names economizam MIPS
Padrões de código COBOL que envelhecem bem
Nos vemos no próximo batch. 🚀
.png)