Para aclarar un poco cómo funciona la anidación de ciclos for-each, realicé este ejemplo donde se recorre un array de dos dimensiones, es decir una matriz de 2 x 3.
<public class CicloForEachAnidado {
public static void main(String[] args) {
// Uso de for-each para array de dos dimensionesint sum = 0;int[][] nums = new int[2][3];// Dando valores al arrayfor (int i = 0; i < 2; i++) {for (int j = 0; j < 3; j++) {
nums[i][j] = (i + 1) * (j + 1);
}
}
// Uso de for-each para mostrar la suma totalfor (int x[] : nums) {
for (int y : x) {
System.out.println("Valor de: " + y);
sum += y;
}
}
System.out.println("Suma total: " + sum);
}>
IMPORTANTE:
for (int x []: nums)
Se debe prestar especial atención a esta parte del código, ya que la variable x se declara como un array porque es una referencia al array bidimensional de enteros nums[][].
nums es una matriz de matrices, cada uno de sus elementos es una matriz.
for (int y : x)
Para cada uno de los elementos en “x”, colocará su valor en “y” y ejecutará el código a continuación. Es decir este código:
System.out.println("Valor de: " + y);
sum += y;
Este ejemplo me ayudó a comprender un poco mejor la anidación de este tipo de bucles.
Espero le pueda servir a otra persona también.