Dentro de las estructuras de
control repetitivas, Java cuenta con los tradicionales while(), do-while() y for () con estructuras idénticas a las utilizadas en C y en C++, con la salvedad de la condición de iteración que tiene que ser un valor lógico, no valiendo un valor numérico.
Java además, a partir de la versión 5, incorpora el bucle, conocido como for – each.
- Se utiliza de manera especial para controlar arrays o en general colecciones.
- Tiene la ventaja de no tener que utilizar una variable para controlarlo.
- Su funcionamiento se basa en iterar para cada uno de los elementos de la colección, sin necesidad de conocer el número de elementos de los que consta.
El formato de este bucle es:
for( tipo var_elto: var_array){
//instrucciones
}
Su funcionamiento,
consiste en ir tomando cada elemento del array var_array, que serán del tipo tipo_var y lo copia en var_elto para su procesamiento.
Ejemplo, for – each frente a for
tradicional:
public static void main(String[] args){
…
int[] lista = {1, 2, 3, 4};
// recorrido del array
for(int
n : lista)
System.out.println(n);
// recorrido del array con el for tradicional
for(int i=0; i<
lista.length; i++ )
System.out.println(lista[i]);
…
}
Ejemplo, con una
colección:
public static void main(String[] args){
…
ArrayList<String> aList = new
ArrayList<String>();
aList.add(“Madrid”);
aList.add(“Palencia”);
aList.add(“Guadalajara”);
// recorrido de una colección
for(String s :
aList)
System.out.println(s);
…
}
Ejemplo, procesando
una matriz por filas y columnas:
public static void main(String[] args){
int[][] matriz;
…
for (int[] fila : matrix) {
for (int elto : fila) {
System.out.printf("%8d", elto);
}
System.out.printf(“%n");
}
…
}
Equivalente con el for
tradicional:
public static void main(String[] args){
int[][] matriz;
…
for (int i=0; i < matriz.length; i++) {
for (int j=0; j < matriz[0].length; j++) {
System.out.printf("%8d", matriz[i][j]);
}
System.out.printf(“%n");
}
…
}
No hay comentarios:
Publicar un comentario