En el artículo anterior, definimos una expresión como cualquier fragmento de código que se puede evaluar para producir un valor. Vimos que se construyen a partir de literales, constantes y variables, combinados mediante operadores.
Ahora, vamos a clasificar las expresiones según el tipo de valor que producen como resultado. Entender esta clasificación es clave, ya que no podemos, por ejemplo, usar una expresión que produce un texto en un lugar donde el programa espera un número.
1. Expresiones aritméticas 🔢
Son las más directas. Una expresión aritmética es aquella que, al ser evaluada, produce un valor numérico (ya sea entero o real).
Se construyen utilizando:
- Operandos numéricos (literales, constantes o variables).
 - Operadores aritméticos (
+,-,*,/,%). 
Ejemplos:
coste + 10(base * altura) / 2saldo_actual - retirada
Estas expresiones son la base de cualquier cálculo matemático dentro de un programa, desde calcular el total de una factura hasta simular complejas leyes físicas.
Una nota importante: la precedencia de operadores
¿Qué ocurre cuando una expresión contiene varios operadores distintos, como 10 + 5 * 2? El resultado no es 30 (15 * 2), sino 20. Esto se debe a la precedencia de operadores, una serie de reglas que definen el orden en que se deben resolver las operaciones.
La jerarquía es la misma que aprendimos en matemáticas:
- Primero se resuelven las expresiones entre paréntesis.
 - Luego, las multiplicaciones (
*), divisiones (/) y módulo (%). - Finalmente, las sumas (
+) y restas (-). 
Si hay varios operadores con la misma precedencia (por ejemplo, una suma y una resta), se suelen evaluar de izquierda a derecha. Utilizar paréntesis, aunque no sean estrictamente necesarios, es una buena práctica para hacer el código más claro y evitar errores.
2. Expresiones relacionales (o de comparación) ⚖️
Una expresión relacional es aquella que compara dos valores y, al ser evaluada, produce siempre un valor booleano: verdadero o falso.
Son el pilar fundamental de la toma de decisiones. Se construyen utilizando operadores relacionales (==, !=, >, <, >=, <=) para comparar dos expresiones, que muy a menudo son de tipo aritmético.
Ejemplos:
edad >= 18(Produceverdaderosi el valor deedades 18 o más).numero_intentos == 3(Produceverdaderosi la variable contiene exactamente el número 3).precio_final > 100.50(Produceverdaderoofalsotras comparar el valor de la variable con el literal).
El resultado de una expresión relacional no nos dice cuánto es un valor, sino que nos responde a una pregunta de «sí o no» sobre él.
Es importante saber que los operadores aritméticos siempre se evalúan antes que los relacionales. En la expresión edad + 5 > 20, primero se resolverá la suma edad + 5 y, después, el resultado de esa suma se comparará con 20.
3. Expresiones lógicas 🧠
Una expresión lógica es aquella cuyo resultado final es, al igual que en las relacionales, un valor booleano (verdadero o falso).
Su particularidad es que se construyen combinando otros valores booleanos (que a menudo son el resultado de expresiones relacionales) mediante el uso de operadores lógicos (Y, O, NO).
Nos permiten crear condiciones mucho más complejas y específicas.
Ejemplos:
(edad >= 18) Y (tiene_carnet == true)(Produceverdaderosolo si ambas sub-expresiones son verdaderas).(es_festivo == true) O (dia_semana == "Sábado")(Produceverdaderosi al menos una de las dos condiciones se cumple).NO (alarma_activa)(Invierte el valor booleano de la variablealarma_activa).
Al igual que con las otras expresiones, aquí también hay un orden. La secuencia de evaluación general es: primero se resuelven todas las expresiones aritméticas, luego las relacionales y, finalmente, se combinan sus resultados (verdadero o falso) con los operadores lógicos. Dentro de estos operadores lógicos, el primero que se resuelve es el not, después tiene precedencia el and, que siempre se resolvería antes que el operador or.
4. Expresiones de caracteres (o de cadena) ✍️
Finalmente, una expresión de caracteres es aquella que opera con datos de tipo cadena de texto y produce una nueva cadena de texto como resultado.
Aunque existen muchas operaciones posibles con texto, la más fundamental y común es la concatenación, que consiste en unir dos o más cadenas. En muchos lenguajes, el operador aritmético de la suma (+) se reutiliza para esta función.
Ejemplos:
"Hola" + ", mundo"(Produce la cadena"Hola, mundo").nombre + " " + apellidos(Produce una cadena con el nombre completo separado por un espacio)."Usuario: " + nombre_usuario(Combina un literal con una variable para crear un mensaje).
Algunos lenguajes de programación permiten componer expresiones de cadenas de texto mezclando otros tipos, como números: "Mi edad es " + edad + " años.". Estos lenguajes, lo que realmente suelen hacer es convertir a texto automáticamente aquellas variables que no son textuales.
Conclusión
Hemos visto que, aunque todas las expresiones producen un valor, no todos los valores son del mismo tipo. Comprender la diferencia entre una expresión aritmética (que da un número), una relacional o lógica (que dan un verdadero/falso) y una de caracteres (que da un texto) es vital.
Esta distinción nos permite construir programas coherentes y sin errores. Con esta base tan sólida, ya estamos preparados para dar el siguiente gran paso: aprender a controlar el flujo de nuestros programas utilizando el resultado de estas expresiones para tomar decisiones. ¡De eso hablaremos en la siguiente entrada!


Deja una respuesta