Cómo escribir expresiones condicionales
En varias oportunidades he escrito entradas sobre el uso de los diversos operadores de Java, así como de la necesidad de traducir expresiones escritas en notación matemática a notación de programación. En esta ocasión, te proporciono ejemplos para demostrarte cómo escribir expresiones condicionales. Éstas expresiones pueden representar un problema para los programadores inexpertos, ya que se componen de operadores que aparentemente no usamos tan cotidianamente como los operadores aritméticos.
Un repaso.
Recordando, los operadores relacionales se muestran en la figura 1. Su característica principal es que sus operandos son valores numéricos pero el resultado obtenido es un valor lógico (true/false).

Figura 1. Operadores relacionales
Los operadores lógicos se muestran en la figura 2. Se caracterizan porque sus operandos son valores lógicos así como el resultado obtenido de estas operaciones.

Figura 2. Operadores lógicos
¿Para qué sirven?
La función de los operadores relacionales es comparar datos. Es por ello que el resultado de esta comparación sólo puede ser verdadero (true) o falso (false).
La comparación es una operación muy básica pero necesaria para el procesamiento de los datos. Por ejemplo, considera el siguiente conjunto de datos, que representan las calificaciones de los estudiantes de un grupo:
8.8 7.5 9.6 8.5 9.1
Si queremos ordenar estos valores de menor a mayor, debemos realizar comparaciones sucesivas hasta obtener el conjunto ordenado. Como puedes observar en la figura 3, se toma un par de datos, se compara, y si el primer dato es menor, deben intercambiar posición, y así sucesivamente.

Figura 3. Un ejemplo de ordenamiento de datos usando comparaciones sucesivas.
Este tipo de operaciones son realizadas por la ALU (Unidad Aritmético-Lógica), una parte fundamental de todo microprocesador moderno. Las comparaciones (operaciones relacionales) y la unión de estas (operaciones lógicas) son parte esencial del procesamiento de datos que permitirán la toma de decisiones. En una palabra, son las operaciones que diferencian a una computadora, de una simple calculadora.
Creación de expresiones relacionales y lógicas
Ejemplo #1: Escribiendo expresiones relacionales.
Ya mencioné que las expresiones relacionales sirven para realizar comparaciones, generalmente entre operandos numéricos. No son expresiones difíciles de escribir, pero requieren un cierto nivel de abstracción para llegar a escribirlas.
No voy a entrar en complicadas definiciones sobre lo que es la abstracción, sólo mencionaré que es un proceso mental que todos los seres humanos poseemos, y que nos permite construir modelos mentales a partir de conceptos, símbolos, situaciones, y/o procesos. (Si quieres saber más, puedes consultar aquí o aquí). Para escribir expresiones relacionales, tenemos que ser capaces de plasmar con variables y operadores, una comparación que condicionará alguna acción. Veamos un ejemplo muy simple:
“Escribe la expresión que represente que un número es positivo”.
Personalmente, el proceso de abstracción que yo realizo para escribir la expresión es el siguiente:
- Buscamos representar un número, esto lo puedo hacer utilizando una variable cualquiera. Puedo usar la variable x o la palabra numero como nombre de la variable a representar. En programación se busca que los nombres de las variables tengan relación con el problema, por lo que usaré numero.
- Ahora debo pensar cuál operador me ayudará a representar aquello de que “el número es positivo”. Más que buscar el operador apropiado, pienso en las reglas matemáticas de los números, y recuerdo lecciones de mi infancia para responder a la pregunta: ¿cuándo un número es positivo? En la figura 4 te muestro una recta numérica, sólo para recordar que los números positivos tienen una característica importante: todos son mayores a cero.
- Con esta característica ya he encontrado mi operador, el >, por lo que la expresión relacional queda escrita de la siguiente forma:
numero > 0
Para escribir este tipo de expresiones, va a ser muy útil recordar las reglas más básicas de los números naturales. Eso es todo lo que necesitas para escribir expresiones relacionales.

Figura 4. La recta numérica
Ejemplo # 2: Escribiendo expresiones lógicas
Quizá te parezca que los operadores lógicos son muy complejos y que nunca los has utilizado, pero te sorprenderá saber que los utilizas de forma cotidiana, en tu hablar diario.
Por ejemplo, la siguiente es una oración común que podemos utilizar en nuestro español regular:
"Si no llueve, iré a correr"
Este tipo de expresiones, en el mundo de la programación también son conocidas como expresiones condicionales, porque establecen él o los requisitos necesarios para que una acción se lleve a cabo. En este caso:
- Requisito (condición): que no llueva
- Acción: ir a correr
Ahora analicemos un poco más de cerca la condición:
"Si no llueve"
La lluvia es un hecho que o sucede o no, ¿y eso a que nos recuerda? ¡Claro, a los tipos de datos booleanos! Ese tipo de datos que sólo pueden almacenar dos valores: verdadero/falso, true/false.
Entonces la expresión condicional quedaría escrita de la siguiente forma, utilizando operadores del lenguaje Java:
!lluvia
Por otro lado, la acción de correr también puede ser representada como un variable booleana. Revisa la forma en como está declarada la oración inicial, podrás observar que solo tienen dos resultados posibles:
- Si lluvia es verdadero, no iré a correr
- Si lluvia es falso, iré a correr.
La oración no implica cuánto correré, sólo establece que se correrá o no. Por lo que la oración completa puede quedar representada para programación de la siguiente forma:
if (!lluvia) correr = true; else correr = false;
Ejemplo # 3: Escribiendo expresiones relacionales y lógicas
Ahora solucionaré un ejemplo un poco más complicado. Vamos a suponer que se necesita escribir una expresión lógica para representar si un estudiante aprueba o no una asignatura, en la que el profesor ha establecido los siguientes criterios:
- El estudiante debe aprobar con más de 85 puntos las dos pruebas que se le aplicaron y
- No debe tener inasistencias en el curso
Proceso de abstracción.
El proceso de abstracción implica:
Identificar las variables involucradas.
En este caso, tenemos a las dos pruebas, se tienen calificaciones diferentes para cada una, por lo que deben ser variables distintas. Yo las nombraré: prueba1 y prueba2. Además, tenemos la variable inasistencias.
Establecer que tipo de dato guardará cada variable.
Esto es sumamente importante porque te ayudará a encontrar los operadores adecuados para escribir la expresión. Identificamos que las variables prueba1 y prueba2, guardarán valores numéricos enteros, dentro de un rango de 0 a 100. (El problema no lo indica, pero dado que se trata de calificaciones, lo deducimos). Para la variable inasistencias, nos encontramos que puede ser tratada de varias formas, pero si leemos las indicaciones del profesor, sólo especifica que el estudiante no debe tener faltas, lo cual nos da un indicio de que se trata de una variable sí o no, es decir, una variable booleana. El problema podría estar planteado diferente, podría mencionarse “El estudiante no debe tener más de tres inasistencias”, lo cual nos daría luz verde para que se trate de una variable numérica, pero en el caso específico del ejemplo en cuestión no lo indica, por lo que optaremos por una variable booleana.
Revisar si la expresión contiene dos o más expresiones.
Ese es nuestro caso, pues se debe cumplir con el puntaje de las pruebas Y no tener inasistencias. Pero además, el estudiante debe tener más de 85 en cada prueba, no en una o en otra, lo que implica que es una expresión compuesta a su vez por tres expresiones.
Escribir la expresión usando los operadores adecuados.
Como ya hemos realizado el proceso de abstracción al nivel necesario, podemos representar el problema usando notación de programación. La expresión final es:
prueba1 >= 85 && prueba2 >= 85 && !inasistencias
Aquí puedes apreciar como el operador lógico && (AND) nos sirve para unir las expresiones y de hecho recuerda que es un operador muy “exigente”, pues al usar un && todas las expresiones deben ser verdaderas para que el resultado sea verdadero. En este caso, el estudiante debe tener más de 85 puntos en prueba1 y en prueba2 y no tener inasistencias.
Para concluir
El proceso de escritura de expresiones relacionales y lógicas, o expresiones condicionales suele complicarles a los programadores nóveles.
Tod@s l@s que nos dedicamos a enseñar programación hemos pasado por el problema de entender cómo escribir estas expresiones, a cómo enseñar a los estudiantes a escribirlas. Desafortunadamente aún no existe una fórmula mágica que funcione con todos los tipos de expresiones y todos los tipos de estudiantes. Por ello debemos recurrir al proceso de abstracción y a los conocimientos matemáticos del estudiante (es decir, su propio background).
Es muy importante que el estudiante aprenda a escribir expresiones condicionales, pues esta capacidad será determinante para tener éxito en escribir algoritmos.
Cuando estuve en el primer año de la carrera, sentí en carne propia la frustración por no poder escribir este tipo de expresiones. Pero te dejo un consejo que espero te ayude: mientras más veces lo intentes, con el tiempo, te será más fácil escribir las condicionales. En otras palabras, la práctica hace al maestro, por lo que no queda más que practicar y practicar para superar esta etapa que puede ser difícil en el camino de aprender a programar.
Dania Garcia Montiel 1° A TIDSM
Miguel Angel Sanchez Papalotzi
Alejandro Avendaño Luna
Matthew Márquez. 1A. TIADSM.
Eric Hernandez Hernandez 1A DSM
Thania Hernández Cervantes
Pamela Lorelei Meza Leon
Pamela Lorelei Meza Leon
Pamela Lorelei Meza León