2012-07-27 27 views
37

Se me ha pedido que use un loop mejorado for en mi codificación. Solo me han enseñado cómo usar los bucles tradicionales for, y como tal no sé sobre las diferencias entre él y el lazo mejorado for. ¿Cómo se diferencia un lazo mejorado for del lazo tradicional for, en Java? ¿Hay alguna complejidad que deba tener en cuenta y que los tutoriales tienden a no mencionar?¿Cuál es la sintaxis de Enhanced for loop en Java?

+11

Bienvenido al desbordamiento de la pila! Le recomendamos que [investigue sus preguntas] (http://stackoverflow.com/questions/how-to-ask). Si ya [lo intentó] (http://whathaveyoutried.com/), agréguelo a la pregunta; si no, investigue e intente su pregunta primero y luego vuelva. –

+6

Aunque, si el usuario1920811 lo hubiera investigado y hubiera encontrado la respuesta realmente fácil en línea y no me hubiera hecho esta pregunta, no habría podido encontrar la sintaxis exacta que requería como segundo enlace en google –

+0

12 personas votaron hacia arriba esto, y 21 su respuesta. Quizás esto debería ser reabierto? Pensé que las preguntas que van tan completamente en contra del sitio que se votaron cerradas no tendrían una respuesta comunitaria tan positiva. –

Respuesta

42

ciclo mejorado:

for (String element : array) { 
    // Do something with element of type String 
    System.out.println(element); 
} 

tradicional de bucle: (

for (int i=0; i < array.length; i++) { 
    // Reference to the item in array[position] 
    String element = array[i]; 
    // More code using String element 
} 

Echa un vistazo a estos foros: https://blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with

http://www.java-tips.org/java-se-tips/java.lang/the-enhanced-for-loop.html

9

Una mayor for bucle es sólo limitando el número de parámetros insi de los paréntesis.

for (int i = 0; i < myArray.length; i++) { 
    System.out.println(myArray[i]); 
} 

se puede escribir como:

for (int myValue : myArray) { 
    System.out.println(myValue); 
} 
+2

Una nota: los bucles 'for' tradicionales también pueden hacer más. Los mejorados son únicamente para iterar a través de una matriz o una clase que implemente 'Iterable'. Los bucles 'for' tradicionales también se pueden usar para repetir exactamente' n' veces ('for (int i = 0; i

+0

Los for-lops mejorados solo son buenos para la iteración. Si necesita el índice, o quiere hacer piratería y/o capacidades de abuso, los bucles for-tradicionales son el camino a seguir – Zoe