Precedencia de operador en lenguajes de programación


  Share  
|


La precedencia de operador descifra la orden en la cual los cálculos en una expresión ocurren. Mirando el ejemplo 3 + 4 * 6 del cálculo, la respuesta podría ser calculada agregando 3 y 4, que da 7, y después multiplicando 7 por 6, dando la respuesta de 42. Sin embargo, podríamos también multiplicar 4 y 6 primeros, que da 24, y después agregamos en los 3, dando una respuesta de 27. El operador de la multiplicación (*) tiene realmente una precedencia más alta que el operador de la adición (+). esto significa que la expresión numérica 3 + 4 * 6 daría realmente la respuesta 27 y no 42, ejecutando la multiplicación primero y después la adición. Para especificar la orden en la cual los cálculos ocurren usted puede utilizar simplemente paréntesis. Si quisiéramos que el cálculo de la adición fuera ejecutado antes de la multiplicación, podemos incluir el cálculo de la adición en paréntesis (e.g., (3 + 4) * 6, que nos darán la respuesta 42). Cuando en duda, se recomienda que usted utiliza paréntesis para especificar la orden de operaciones. Es a menudo el mejor utilizar paréntesis de todos modos para hacer su código más comprensible.

La tabla siguiente demuestra una lista del operador que contiene operadores con una precedencia más alta en la tapa y thoses con una precedencia más baja en el fondo. La tabla también demuestra el associativity de los operadores agrupados que están de precedencia igual. El associativity descifra la orden de operadores de la precedencia igual. Por ejemplo, la división tiene un associativity "izquierdo", que usted puede mirar sobre como siendo ido a la derecha. Esto significa que la expresión 24/4/2 sería igual que (24/4)/2, igualando 3, y no sería igual que la expresión 24/(4 /2), que da un resultado de 12. Aquí está la tabla de la precedencia de operador y el associativity de operadores de la precedencia igual.

Grupo Del Operador Associativity
(), [ ],., postfix++, posfijo–– Izquierdo
¡+ singular, – singular, ++prefix, ––prefijo, ~,! La derecha
nuevo, (molde) Izquierdo
*, /, % Izquierdo
+, – Izquierdo
< <, > >, > > > Izquierdo
<, < =, >, > =, instanceof Izquierdo
==,! = Izquierdo
y Izquierdo
^ Izquierdo
| Izquierdo
&& Izquierdo
|| Izquierdo
?: Izquierdo
=, * =,/=, % =, + =, –=, < < =, > > =, >>>=, y =, |=, ^ = La derecha

Pensando de nuevo a los dos ejemplos que hemos mirado hasta ahora, podemos primero ver que el operador de la multiplicación es un ascendente más alto la tabla que el operador de la adición, significándola tiene una precedencia más alta. Podemos también ver que el operador de la división tiene (a la izquierda a la derecha) un associativity izquierdo, como discutimos previamente.

esto es un artículo agregado por Gabriela C. Perez


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions