Cobol.Condiciones.

Ismael Royano Gómez
Enredando con Programación
3 min readMay 10, 2016

Por norma general, un programa escrito en COBOL se ejecuta forma secuencial, es decir, una sentencia tras otra de forma que llegue hasta la instrucción de final de programa. Existen instrucciones en las que pueden variar este orden de ejecución, como son las condiciones.

En este apartado vamos a aprender como se utilizan sentencias como IF, EVALUATE y crear y utilizar nombres de condiciones.

Utilizando IF.

Cuando un programa se encuentra una instrucción IF, lo que hace es evaluar la condición. Si es verdadera realiza las instrucciones que se encuentre en en THEN. Si es falsa ejecutará las instrucciones que se encuentre en el ELSE. Una vez que termine la sentencia del IF se debe especificar su fin con END-IF.

Veamos como se debería hacer la estructura de un IF:

Bloque1
Bloque2
IF variable1 < Variable2 THEN
Bloque3
Bloque4
ELSE
Bloque5
END-IF

Operadores Relacionales.

  • > Mayor que.
  • < Menor que.
  • >= Mayor o igual que.
  • <= Menor o igual que.
  • <> Distinto que.

Existen dos tipos de condiciones, las simples y las compuestas.

Las condiciones simples son aquellas que preguntamos por solo una condición, como por ejemplo “Si Variable1 es menor que Variable2 Entonces…”.

Las condiciones compuestas son aquellas que usamos dos o más condiciones simples a la vez, como por ejemplo “Si Variable1 es menor que Variable2, que Variable3 sea igual a Variable4 Entonces..”

En las condiciones compuestas existen unos operadores que sirven para juntar varias condiciones simples; OR y AND.

Las condiciones siempre se leen de izquierda a derecha y sólo evalúan si la condición es verdadera o falsa. Vamos a ver unos ejemplos y voy explicando sus diferencias.

IF Variable1>10 AND Variable<26 THEN
Setencia1…
END-IF
IF NOT Variable1<10 OR Variable2=50 AND Variable3>150 THEN
Sentencia1…
END-IF

AND. Usando esta cláusula evalúa las dos condiciones a la vez, es decir, en este ejemplo será verdadero, sólo y exclusivamente cuando se cumplan las dos condiciones a la vez. Si alguna de la variables no cumpliera la condición, el resultado sería falso y no haría la sentencias que hay en el THEN.

OR. A diferencia de la cláusula anterior, ésta evalúa las condiciones una a una y cuando sea verdadera una de ellas o las dos a la vez, realiza las instrucciones que encuentra en el THEN.

Hay que tener en cuenta que COBOL mantiene un orden prioridad al evaluar las condiciones.

  1. Paréntesis.
  2. NOT.
  3. AND.
  4. OR.

En el segundo ejemplo se interpretaría de la siguiente forma:

  • Lo primero que evalúa es el “NOT (Variable1<10)”.
  • Lo siguiente sería “(Variable2=50) AND (Variable3>150)”.
  • Por último sería la claúsula OR “(NOT (Variable1<10)) OR ((Variable2=50) AND (Variable3>150))”.

Nombres de Condiciones. Los nombre de condiciones son variables que se definen como nivel 88, en los que se definen los valores posibles que puede contener la variable o el identificador. Su sintaxis es la siguiente:

Cuando usamos los nombres de condiciones, la cláusula VALUE no asigna valores a una variable, lo que hace es dar los posibles valores que puede contener esa condición para que sea verdadera.

Lista de Valores.

02 Departamento PIC X.
88 Desarrollo VALUE I,L,T.

Rango de Valores. También podemos asociar varios nombres de condiciones a un misma variable, como en este caso.

02 Edad PIC 9(3).
88 Niño VALUE 0 THRU 12.
88 Adolescente VALUE 13 THRU 19.
88 Adulto VALUE 20 THRU 999.

Utilizando nombres de condiciones. Veamos un ejemplo:

WORKING-STORAGE SECTION.
01 Caracter PIC X.
88 Vocales VALUE "a", "e", "i", "o", "u".
88 Consonantes VALUE "b", "c", "d", "f", "g", "h".
88 Numeros VALUE "0" THRU "9".
…etc.
ACCEPT Caracter.
IF Vocales THEN
DISPLAY "El digito "Caracter "es una vocal"
ELSE
IF Consonantes THEN
DISPLAY "El digito " Caracter " es una consonante"
ELSE
IF Numeros THEN
DISPLAY "El digito " Caracter " es un numero"
ELSE
DISPLAY "El digito introducido es incorrecto"
END-IF
END-IF
END-IF

Utilizando EVALUATE. Esta cláusula es otra forma de evaluar condiciones, pero de forma estructurada, como tipo “Casos”. Veamos su sintaxis:

Podemos utilizar como ejemplo el ejercicio anterior de las vocales, pero veremos lo que cambia usando EVALUATE:

ACCEPT Caracter.
EVALUATE TRUE
WHEN Vocales DISPLAY "Es una vocal"
WHEN Consonantes DISPLAY "Es una consonante"
WHEN Numeros DISPLAY "Es un número"
WHEN OTHER DISPLAY "Digito incorrecto"
END-EVALUATE

Si nos fijamos hemos usado la cláusula TRUE para evaluar que nombres de condiciones (nivel 88) son verdaderas, también podemos utilizar condiciones, rangos de números o incluso variables. Veamos otro ejemplo:

EVALUATE Caracter
WHEN "0" Sentencias…
WHEN "1" THRU “9” Sentencias…
WHEN "a" Sentencias…
WHEN "x" Sentencias…
END-EVALUATE

Continúa por Párrafos y bucles.

--

--

Ismael Royano Gómez
Enredando con Programación

Técnico Informático curioso, lector activo de las nuevas tecnologías, amante de las series de televisión y usuario del respetable mundo del enredo.