en java
Civilizadamente se organizan de acuerdo al nivel del precedencia de cada uno. Primeramente proceden los unarios, luego los aritméticos, después los de bits, posteriormente los relacionales, detrás vienen los booleanos y por último el operador de asignación. La regla de precedencia establece que los operadores de mayor nivel se ejecuten primero.
Precedencia de operadores Descripción Operadores
operadores posfijos op++ op--
operadores unarios ++op --op +op -op ~ !
multiplicación y división * / %
suma y resta + -
desplazamiento << >> >>>
operadores relacionales < > <= =>
equivalencia == !=
operador AND &
operador XOR ^
operador OR |
AND booleano &&
OR booleano ||
condicional ?:
operadores de asignación = += -= *= /= %= &= ^= |= <<= >>= >>>=
En la tabla se muestra el nivel de precedencia de los operadores. Los de mayor nivel se encuentran arriba. Podemos ver que los últimos son los de asignación. Esto es lógico, ya que se debe calcular primeramente la expresión antes de asignar un resultado a una variable.
Veamos unos ejemplos de cómo actúa esta regla.
int j = 1 + 3 * 4; // resultado j = 13
Desde que aprendimos aritmética básica, conocemos la regla que nos obliga a calcular la multiplicación antes de una suma. Esto también se cumple en Java.
int j = 1 + 3 – 4; resultado j= 0;
Si todos los operadores tienen un nivel idéntico de precedencia se evalua la expresión de izquierda a derecha.
[editar]
Utilización de paréntesis
Se utilizan para aislar una porción de la expresión de forma que el cálculo se ejecute de forma independiente. Puede forzar a una expresión a ignorar las reglas de precedencia.
int j = 1 + 3 * 4; // resultado j = 13
int h = (1 + 3) * 4 // resultado j = 16
Tomando el primer ejemplo, forzamos al compilador a realizar la suma antes que la multiplicación.
En este ejemplo es imprescindible la utilización de paréntesis :
int k = 1 + (h = 3);
Si quitamos los paréntesis el compilador protestará. Porque al establecer un nivel muy bajo para la asignación, procede primero la suma. Pero estamos sumando con una variable sin valor.
Como en matemática , podemos anidar los paréntesis. Se comenzara a evaluar los internos hasta llegar a los externos.
int k = ((12 - 2) * ( 21 - 11)) / ((1+1)*(15-10)) + 1 ;
2006-08-24 10:52:37
·
answer #1
·
answered by peyot 4
·
0⤊
0⤋
Si utilizas parentesis no necesitas saber la precedencia de los operadores!
Usa parentesis y se feliz!!!
2006-08-24 17:57:06
·
answer #2
·
answered by Boctulus 4
·
1⤊
0⤋
Los Bulbos de Alogeno
2006-08-24 17:51:22
·
answer #3
·
answered by Anonymous
·
1⤊
0⤋
En puntos anteriores han dado buenas respuestas, tan solo quiero agregar, para evitar confusiones que las reglas de precedencia de operadores es dependiente de la definicion que hayan hecho en la creaciòn del lenguaje de programaciòn dado. Es decir que para los mismos operadores hay diferente precedencia en diferentes lenguajes.
Por ejemplo el lenguaje C que tiene un monton de operadores tiene hasta mas de 20 niveles de precedencia, dentro de cada nivel puede tener varios operadores que se resuelven de izquierda a derecha o al reves. Otros lenguajes como Basic tienen unos cinco niveles, asi de sencillo.
Los parentesis siempre ayudan a cambiar la precedencia y resolver ambiguedades. Como nota adicional hay notaciones donde se puede indicar cualquier tipo de orden de operaciones sin usar parentesis, investiga sobre la "notacion polaca" por ejemplo.
2006-08-24 20:19:55
·
answer #4
·
answered by NovoSer 4
·
0⤊
0⤋
( )
+ -
* /
y a continuacion siguen los operadores logicos [no] [y] [o]
2006-08-24 17:53:20
·
answer #5
·
answered by lorena v 2
·
0⤊
0⤋
Todos los operadores (aritméticos, lógicos y relacionales) tienen unas reglas de precedencia que se aplican cuando varios actuan juntos
- En los operadores aritméticos, por ejemplo, la multiplicación y la división "se ejecutan" antes que la suma y la resta, es decir, tienen precedencia.
- Para alterar estas reglas de precedencia, se pueden usar paréntesis.
- Así por ejemplo a + b * c es equivalente a a + (b * c) porque la precedencia de la multiplicación es superior a la de la suma. Sin embargo, (a + b) * c altera la precedencia.
- Para evitar dudas y problemas, cuando manejemos expresiones con varios operadores, lo mejor es poner siempre paréntesis y forzar así la precedencia que nosotros deseemos.
- Escribiremos pues a + (b * c) ó (a + b)*c según lo que deseemos, y no dejarermos que sea la máquina la que lo deduzca
2006-08-24 17:52:03
·
answer #6
·
answered by Marcelo P 5
·
0⤊
0⤋
suma, resta, multiplicacion y luego division.
claro siempre se resuelve desde dentro de los parentesis hacia afuera.
2006-08-24 17:52:01
·
answer #7
·
answered by b10543748 7
·
0⤊
0⤋