Al incrementar o decrementar una variable que se encuentre en una instrucción por sí sola, las formas pre-
incremento y postincremento tienen el mismo efecto, al igual que las formas predecremento y postdecremento.
Solamente cuando una variable aparece en el contexto de una expresión más grande es cuando los operadores
preincremento y postdecremento tienen distintos efectos (y lo mismo se aplica a los operadores de predecremento
y postdecremento).
Error común de programación 4.9
Tratar de usar el operador de incremento o decremento en una expresión a la que no se le pueda asignar un valor es
un error de sintaxis. Por ejemplo, escribir
++(x + 1)
es un error de sintaxis, ya que
(x + 1)
no es una variable.
La
fi gura 4.17 muestra la precedencia y la asociatividad de los operadores que se han presentado hasta este
punto. Los operadores se muestran de arriba a abajo, en orden descendente de precedencia. La segunda columna
describe la asociatividad de los operadores en cada nivel de precedencia. El operador condicional (
?:
), los opera-
dores unarios de incremento (
++
), decremento (
--
), suma (
+
) y resta (
-
), los operadores de conversión de tipo y
los operadores de asignación
=
,
+=
,
-=
,
*=
,
/=
y
%=
se asocian de derecha a izquierda. Todos los demás operado-
res en la tabla de precedencia de operadores de la fi gura 4.17 se asocian de izquierda a derecha. La tercera columna
enlista el tipo de cada grupo de operadores.
1
// Fig. 4.16: Incremento.java
2
// Operadores de preincremento y postincremento.
3
4
public class
Incremento
5
{
6
public static void
main( String args[] )
7
{
8
int
c;
9
10
// demuestra el operador de preincremento
11
c =
5
;
// asigna 5 a c
12
System.out.println( c );
// imprime 5
13
System.out.println( c++ );
// imprime 5, después postincrementa
14
System.out.println( c );
// imprime 6
15
16
System.out.println();
// omite una línea
17
18
// demuestra el operador de postincremento
19
c =
5
;
// asigna 5 a c
20
System.out.println( c );
// imprime 5
21
System.out.println( ++c );
// preincrementa y después imprime 6
22
System.out.println( c );
// imprime 6
23
24
}
// fin de main
25
26
}
// fin de la clase Incremento
Figura 4.16
| Preincrementar y postincrementar.
5
5
6
5
6
6
4.12 Operadores de incremento y decremento
141
04_MAQ_CAP_04.indd141
4/19/081:20:47AM