¿Qué es la precedencia de operadores?
La precedencia de operadores en programación se refiere a la prioridad que se asigna a los diferentes operadores cuando se evalúa una expresión. Esto determina el orden en el que se deben realizar las operaciones dentro de una expresión compuesta.
Cuando tienes una expresión que combina varios operadores, la precedencia de operadores dicta el orden en el que se deben evaluar esas operaciones. Los operadores con mayor precedencia se evalúan primero. Si dos operadores tienen la misma precedencia, se utiliza la asociatividad para determinar el orden de evaluación.
Por ejemplo, en muchos lenguajes de programación, la multiplicación tiene mayor precedencia que la suma. Entonces, en la expresión a + b * c
, la multiplicación se realizará antes de sumar a
a su resultado debido a la precedencia de operadores.
Es importante tener en cuenta la precedencia de operadores al escribir expresiones en un lenguaje de programación, ya que puede afectar el resultado final de la operación. Sin embargo, si deseas cambiar el orden de evaluación, puedes utilizar paréntesis para modificar la precedencia y asegurarte de que ciertas operaciones se realicen antes que otras. Por ejemplo, (a + b) * c
garantizará que la suma se realice antes de la multiplicación, independientemente de la precedencia normal de los operadores.
La precedencia de operadores puede variar según el lenguaje de programación, por eso te voy a explicar a continuación la precedencia de los operadores en Arduino.
Precedencia de los operadores en Arduino
Como ya he mencionado la precedencia de los operadores puede variar de un lenguaje a otro, por eso es importante que tengas clara cla precedencia del lenguaje que estás usando.
Si estás en esta página es porque quieres aprender a programar Arduino, así que te voy a explicar cuál es la precedencia de los operadores en Arduino.
En realidad es muy sencillo, simplemente ten presente siempre la siguiente tabla:
Mayor prioridad |
() |
++. –, ! |
*, /, % |
+, – |
<. <=, >, >= |
==, != |
&& |
|| |
Menor prioridad |
Los operadores situados en la parte superior de la tabla son los de mayor prioridad y según vamos bajando por la tabla la prioridad disminuye.
Vamos a analizar algunos ejemplos para ver que está claro:
2 + 3 * 2
¿Cuál es el resultado de esa expresión? Como puedes ver en la tabla lel producto es más prioritario que la suma, por lo que se evalua primero 3 * 2 que es 6 y desupés se suma 2. Por lo que el resultado es 8.
Y si cambiamos la expresión así:
(2 + 3) * 2
Entran en juego los paréntesis, que como puedes ver en la tabla son los más prioritarios, por lo que se realizaría primero la suma y después el producto. Es decir, 2 + 3, que es 5 se multiplica ese resultado por 2. El resultado final es 10.
Como puedes ver ha cambiado bastante.
¿Y qué pasa si todos los operadores implicados tienen la misma prioridad? Pues que la evaluación siempre se hará de izquierda a derecha, excepto en estos tres: ++, — y ! que se realizará de derecha a izquierda.
Veamos un emeplo:
5 – 3 + 2
5 + 2 – 3
¿Qué resultado dan esas expresiones? Ambas tienen implicados operadores con la misma precedencia: suma y resta. Pues haremos la evaluación de izquierda a derecha.
En el primer caso: 5 – 3 + 2.
Primero restamos 5 – 3 que da 2 y después sumamos el 2 restante. El resultado final es 4.
Veamos ahora la otra expresión: 5 + 2 – 3.
De igual forma evaluamos de izquierda a derecha. Primero 5 + 2 que es 7 y ahora restamos el 3. El resultado final es 4.
Como puedes ver, en el primer caso se ha realizado primero la resta y después la suma a pesar de ser ambos operadores igual de preioritarios. En el segundo ejemplo ha ocurrido lo contrario, se ha evaluado la suma primero antes que la resta.
Es muy importante fijarse bien y aplicar la prioridad de los operadores de forma correcta para evitar resultados no esperados. Y si tienes dudas, aplica siempre parénteis, que son los más prioritarios. O también puedes venir aquí y consultar la chuleta 😉.
¡Suscríbete a la newsletter y no te pierdas nada!
¡Suscríbete a la newsletter y no te pierdas nada!
Te avisaré cuando publique nuevo contenido en paraarduino.com y en mi canal de YouTube (@ParaArduino).