sentencias sentencia programacion para mejorado infinito for doble condicion con ciclos java loops for-loop

programacion - sentencia for en java eclipse



Usos de ''for'' en Java (5)

Soy bastante nuevo en Java y en otra pregunta sobre desbordamiento de pila acerca de los bucles, una respuesta dijo que había dos usos para Java en:

for (int i = 0; i < N; i++) { } for (String a : anyIterable) { }

Sé el primer uso de for y lo he usado mucho, pero nunca he visto el segundo. ¿Qué se usa para hacer y cuándo lo usaría?


Ambos son iguales en funcionalidad, pero para (String a: anyIterable) {} , es más legible, menos tipeo y más corto. para (int i = 0; i <N: i ++) indexe la colección, mediante la variable de control de bucle iy para (String a: anyIterable) {} no indexa la colección


El bucle "for in" es en su mayoría golosinas que facilita la lectura del código. (Si pronuncia el: como "en").

Utilizo el segundo tipo casi exclusivamente en mi propio código cuando estoy iterando sobre una lista o matriz.

Todavía utilizo el ciclo normal para cuando se trata principalmente de código matemático, o cuando necesito una "i" para ver cuántas veces lo he hecho.


El primero de los dos que especifique es un C clásico for bucle. Esto le da al programador control sobre los criterios de iteración y permite tres operaciones: la inicialización; la prueba de bucle la expresión de incremento. Aunque se usa a menudo para repetir incrementalmente para un número determinado de intentos, como en su ejemplo:

for (int i=0; i < N : i++)

Hay muchas más instancias en el código donde se usó for para iterar sobre las colecciones:

for (Iterator iter = myList.iterator(); iter.hasNext();)

Para evitar la repetición del segundo tipo (donde a menudo no se usaba la tercera cláusula), y para complementar los Generics introducidos en Java 1.5, se introdujo el segundo de sus dos ejemplos: el bucle for for o el for-each loop .

El segundo se usa con arrays y colecciones genéricas. Consulte esta documentación . Le permite iterar sobre una colección genérica, donde conoce el tipo de la Collection , sin tener que emitir el resultado del Iterator.next() a un tipo conocido.

Comparar:

for(Iterator iter = myList.iterator; iter.hasNext() ; ) { String myStr = (String) iter.next(); //...do something with myStr }

con

for (String myStr : myList) { //...do something with myStr }

Este ''nuevo estilo'' para loop también se puede utilizar con arreglos:

String[] strArray= ... for (String myStr : strArray) { //...do something with myStr }


Se llama para cada bucle y, básicamente, se puede usar con cualquier cosa que implemente.

java.lang.Iterable

Las colecciones genéricas implementan esta interfaz, pero usted también podría crear su propia clase. Facilita el manejo de todo en una lista / colección, aunque el inconveniente es que no obtiene acceso explícito al número actual en la lista como lo hace en el bucle tradicional. Existe una sobrecarga adicional asociada con este tipo de bucle en los bucles tradicionales debido a las llamadas a las clases de iteradores.


Se utiliza para iterar a través de una matriz completa o una colección iterable. Básicamente reemplaza a:

for(int i=0; i<N.length; i++)

Y se puede utilizar con genéricos, que es bastante bueno