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