vés de un arreglo. En el capítulo 19, Colecciones, veremos cómo utilizar la instrucción 

for

 mejorada con colec-

ciones. La sintaxis de una instrucción 

for

 mejorada es:

for

(parámetro : nombreArreglo )

 instrucción

en donde 

parámetro tiene dos partes: un tipo y un identifi cador (por ejemplo, 

int numero

), y 

nombreArreglo es el 

arreglo a través del cual se iterará. El tipo del parámetro debe concordar con el tipo de los elementos en el arreglo. 
Como se muestra en el siguiente ejemplo, el identifi cador representa valores sucesivos en el arreglo, en iteraciones 
sucesivas de la instrucción 

for

 mejorada.

La fi gura 7.12 utiliza la instrucción 

for

mejorada (líneas 12 y 13) para calcular la suma de los enteros en un 

arreglo de califi caciones de estudiantes. El tipo especifi cado en el parámetro para el 

for

mejorado es 

int

, ya que 

arreglo

 contiene valores 

int

; el ciclo selecciona un valor 

int

 del arreglo durante cada iteración. La instrucción 

for

 mejorada itera a través de valores sucesivos en el arreglo, uno por uno. El encabezado del 

for

 mejorado se 

puede leer como “para cada iteración, asignar el siguiente elemento de 

arreglo

 a la variable 

int numero

, después 

ejecutar la siguiente instrucción”. Por lo tanto, para cada iteración, el identifi cador 

numero

 representa un valor 

int

 en 

arreglo

. Las líneas 12 y 13 son equivalentes a la siguiente repetición controlada por un contador que se 

utiliza en las líneas 12 y 13 de la fi gura 7.5, para totalizar los enteros en el 

arreglo

:

for

(

int

 contador = 

0

; contador < arreglo.length; contador++ )

 

total += arreglo[ contador ];

7.6 Instruccion 

for

 mejorada 

275

 1 

// Fig. 7.11: PruebaPaqueteDeCartas.java

 2 

// Aplicación para barajar y repartir cartas.

 3 
 4 

public

 class PruebaPaqueteDeCartas

 5 

{

 6  

// ejecuta la aplicación

 7  

public static void

 main( String args[] )

 8  

{

 9   

PaqueteDeCartas miPaqueteDeCartas = 

new

 PaqueteDeCartas();

 10  

 

miPaqueteDeCartas.barajar();

// coloca las Cartas en orden aleatorio

 11 
 12  

 

// imprime las 52 Cartas en el orden en el que se reparten

 13  

 

for

 ( 

int

 i = 

0

; i < 

13

; i++ )

 14  

 

{

 

15    

// reparte e imprime 4 Cartas

 

16    

System.out.printf(

"%-20s%-20s%-20s%-20s\n"

,

 17 

 

 

 

       

miPaqueteDeCartas.repartirCarta(), miPaqueteDeCartas.repartirCarta(), 

 18 

 

 

 

       

miPaqueteDeCartas.repartirCarta(), miPaqueteDeCartas.repartirCarta() );

 19  

 

}

// fin de for

 20  

}

// fin de main

 21 

}

 // fin de la clase PruebaPaqueteDeCartas

Figura 7.11 

 |  Aplicación para barajar y repartir cartas.

Nueve de Espadas  

Joto de Corazones 

Quina de Treboles 

Siete de Treboles

Seis de Corazones    

Seis de Treboles    

Joto de Diamantes    

Tres de Diamantes

Diez de Diamantes   

Cinco de Diamantes   

As de Treboles       

Rey de Diamantes

Siete de Corazones   

Cuatro de Corazones  

Cuatro de Espadas    

Nueve de Corazones

Dos de Espadas       

Quina de Diamantes   

Dos de Corazones     

Quina de Corazones

As de Corazones      

Cuatro de Treboles   

Cinco de Espadas     

Joto de Treboles

Cinco de Treboles    

Siete de Diamantes   

As de Espadas        

Ocho de Espadas

Nueve de Treboles    

Cuatro de Diamantes  

Siete de Espadas     

Rey de Corazones

Quina de Espadas     

Dos de Diamantes     

Rey de Treboles      

Diez de Corazones

Cinco de Corazones   

As de Diamantes      

Rey de Espadas       

Joto de Espadas

Ocho de Diamantes    

Tres de Espadas      

Ocho de Treboles     

Seis de Diamantes

Nueve de Diamantes   

Tres de Treboles     

Diez de Treboles     

Dos de Treboles

Tres de Corazones    

Ocho de Corazones    

Diez de Espadas      

Seis de Espadas

07_MAQ_CAP_07.indd275

4/19/081:22:58AM