2012-06-29 7 views
5

Tengo dos matrices:puedo usar para cada uno por dos mismas matrices de tamaño

name[] and roll[] 

¿Hay una manera de atravesar ambas matrices en uno para cada loop.Size de ambas matrices siguen siendo los mismos.

Sé usando dos bucles individuales podemos atravesar y de hecho en una sola también que no es un gran problema, pero quiero algo como esto:

for(String n:name,int r:roll){ 
    //blah blah 
} 

Por favor, arrojar algo de luz gracias ..... Ankur

+2

Merecedora de leer: [La especificación para el bucle 'for' mejorado] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2) Esta es una situación en la que en su lugar se necesitará el bucle 'for' basado en índices y anticuado. –

Respuesta

7

No. Usted tendrá que utilizar el anticuado

for(int index = 0; index < name.length; index++) { 
    //blah blah with name[index] and roll[index] 
} 
+0

La pregunta es para cada bucle no para simple para el bucle –

+1

Lo sé, solo estaba señalando la única alternativa (bastante obvia). Editado para que quede más claro. – Keppil

4

No. No puede atravesar dos matrices del mismo tamaño con un solo bucle for-each.

Si desea iterar tanto matriz en un bucle entonces usted tendrá que usar java tradicional for bucle

+0

¿No tienes arrays indexados numéricos en java? – PeeHaa

+0

@PeeHaa: Por supuesto, Java tiene acceso de índice a las matrices, pero la persona que pregunta preguntó específicamente sobre el bucle "for" mejorado ("para cada uno"). –

+0

K tnx (soy un tipo PHP). ¿No sería posible aún cuando ambas matrices tienen índice cero? – PeeHaa

2
for(int i=0,len=name.length; i<len; i++) { 
    String n = name[i]; 
    int r = roll[i]; 
} 
2

El for...each loop no expone el índice (intencionalmente, en realidad ni siquiera tiene uno). Podrías usar tu propio índice si realmente estás decidido a hacerlo, pero sería mejor utilizar el viejo bucle for for con un índice.

Aquí es cómo usted lo haría con su propio índice:

{ 
    int index = 0; 
    for(String name : names) { 
     // roll[index]; 
     ++index 
    } 
} 

Véase también this respuesta.

+1

¡Ejemplo de por qué esto es propenso a errores y por qué necesitamos el foreach mejorado! Usaste el índice y yo - es el tipo de error que cometí. –

+0

¡Buena captura! Al menos el compilador nos ayudaría aquí (escribí la respuesta en mi teléfono). – Jeshurun

Cuestiones relacionadas