No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
15 Hrs
32 Min
35 Seg
Curso de Introducción a Java

Curso de Introducción a Java

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Ciclos For anidados

38/39
Recursos

Los ciclos FOR nos ayudan a ejecutar una parte de nuestro código todas las veces que sean necesarias hasta que una condición se cumpla, por ejemplo, que un número supere o iguale cierta cantidad.

Eso es exactamente lo que necesitamos para trabajar con índices. En vez de escribir todos los números a mano, vamos a utilizar un ciclo para imprimir el valor de cada posición de nuestros arreglos, incluso si estos son multidimensionales:

// Array de una sola dimensión:
for (int i = 0; i <= 3; i++) {
  System.out.println(i);
}
// El resultado será: 0, 1, 2, 3

// Array de dos dimensiones:
for (int row = 0; row < cities.length; row++) {
  for (int col = 0; col < cities[row].length; col++) {
    System.out.println(cities[row][col]);
  }
}
// El resultado será:
// Colombia
// Bogotá
// México
// Guadalajara
// España
// Madrid

El ciclo FOREACH también nos ayuda a recorrer los elementos de un array posición por posición, solo que no tenemos control sobre el índice, el ciclo se encarga de recorrer todo el array automáticamente:

for (TipoDato elemento : coleccion) {
  // Instrucciones
}

Aportes 107

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Gracias anahi, eres de las mejores profesoras de Platzi.¿Por qué te nos fuiste? 😦

Así podemos evitar que se impriman esos “null” en los arreglos:

for (int i = 0; i < androidVersions.length; i++) {
            if (androidVersions[i] == null){
                continue;
            }
            System.out.println(androidVersions[i]);
        }

        for (String androidVersion: androidVersions) {
            if (androidVersion == null){
                continue;
            }
            System.out.println(androidVersion);
        }

Como pueden ver, si le indicamos que, si la posición del arreglo está vacía, que se la salte para así pasar a la siguiente.
No me salió con el monkey jaja 😦

Dure bastante tiempo intentando entender como imprimir arreglos en dos dimensiones en Python… Y en una clase aprendí con JAVA! Esto en verdad es genial!!!

🔆 No debes tener muchas anidaciones, el código debe ser lo más lineal posible.

Gran curso, no creí que me iba a gustar Java, pero me sigo quedando con COBOL 😃
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
Es broma, ya quisiera saber COBOL, pero me quedo con Javascript

Un ejemplo en C#. Que lindo se ve ordenado

Muy elegante utilizar el foreach en arrays multidimensionales.



Ciclos For anidados
.
Bucle For: una estructura repetitiva para ejecutar un mismo segmento de código una cantidad de veces deseada; debes de saber su valor de inicialización, su condición y su incremento.
Ciclo Foreach: nos ayuda a recorre los elementos de un arreglo, pero no tenemos control sobre el índice.

Aquí les dejo un código con el que podrán rellenar los días de la semana de manera sencilla con JOptionPane!!!

import javax.swing.*;

public class Main {
    public static void main(String[] args) {
        String[] androidVersions = new String[7];
        for (int i = 1; i < androidVersions.length+1; i++) {
            androidVersions[i] = JOptionPane.showInputDialog("DIme el dia de la posición "+i);
        }
        JOptionPane.showMessageDialog(null, androidVersions);
    }
}

Me esta explotando la cabeza con todo esto… muy muy confuso para un noobie como yo … pero esperemos que con la practica todo esto se vuelva mas facil … x_____x

También podemos inferir el tipo de variable (usando var) cuando usemos el foreach

for (var pair : cities)
	for (var name : pair)
		System.out.println(name);

En C# sería:

foreach (var pair in cities)
	foreach (var name in pair)
		Console.WriteLine(name);

Otro dato es que puedes obviar el uso de las llaves {} si existe una sola instrucción dentro del bucle

Ese **foreach **esta brutal. Me cuesta trabajo dijerirlo. :S

En el caso de que definamos una variable y no le demos ningún valor, por defecto llevarán los siguientes valores:

que buen contenido y explicación acerca del tema de arreglos, esta parte del curso me gusto mucho.

me gusto mucho el manejo de los for en java

En el ultimo ejemplo creo que es más fácil de entender si se hace de la siguiente forma (mencionando country y city en vez de pair y name) ->

for (String[] country : cities) {
            for (String city : country) {
                System.out.println(city);
            }
        }

Excelente clase!

Para el segundo lo mejor para mi fue este:

for(int i=0;i<cities.length;i++)
            for(int j=0;j<cities[i].length;j++)
            System.out.println(cities[i][j]);

que quiere decir con pair ?

Excelente explicación de los Ciclos For anidados


-

Fue muy rápido en esta clase, muchos temas en un solo vídeo.

excelente curso… me sirvio para reforsar

Gracias, muy bien explicado!

En un for normal, tienes el control de los índices, en un foreach no lo tienes.
for(inicializar contador; comparación; incremento){
//instrucciones
}
for(TipoDato elemento : coleccion){
//instrucciones
}

Quiero compartir este ejemplo clásico de ciclos for anidados,
para mandar a imprimir un triángulo de dos formas diferentes

//Triángulo solo con "prints"
        System.out.println("*");
        System.out.println("**");
        System.out.println("***");
        System.out.println("****");
        System.out.println("*****");
        System.out.println("******");

Y la solución con for anidados

//Triángulo con "prints" y ciclos for anidados
        for(int i=0; i<=5; i++){
            for(int j=0; j<=i; j++){
                System.out.print("*");
            }
            System.out.println();
        }```

La forma mas eficiente de hacer el for para mi fue asi. Fíjence que como es de una línea cada sentencia inferior, no fue necesario poner las llaves

for(int i=0;i<androidVersions.length;i++)
            if(androidVersions[i]!=null)
                System.out.println(androidVersions[i]);```

Gran curso… Muchas Gracias!!!

public class Arrays {
    public static void main(String[] args) {
        String[] androidVersion = new  String[17];
        String days[] = new String[7];

        String[][] cities = new String[4][2];

        int [][][] numbers = new int[2][2][2];
        int [][][][] nubers4 = new int[2][2][2][2];

        androidVersion[0] = "Apple pie";
        androidVersion[1] = "Banana bread";
        androidVersion[2] = "cupcake";
        androidVersion[3] = "Donut";
        cities[0][0] = "Colombia";
        cities[0][1] = "Medellin";
        cities[1][0] = "Colombia";
        cities[1][1] = "Bogota";
        cities[2][0] = "Mexico";
        cities[2][1] = "Guadalajara";
        cities[3][0] = "Mexico";
        cities[3][1] = "CDMX";

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


            System.out.printf(cities[i][j]);
            if (j== 0) {
                System.out.printf(" -------> ");
            }
            else if (j==1)
                {
                    System.out.println("");
                }
            }
        }
        String[][][][] animals = new String[2][3][2][2];
        animals[1][0][0][1] = "monkey";

        System.out.println(animals[1][0][0][1]);
        //foreach
        for (String android:androidVersion             ) {
            System.out.println(android);
        }
        for (String[] pair:cities ) {
            int n = 0;
            for (String names:pair      ) {

                System.out.printf(names);
                if (n == 0) {
                    System.out.printf("--------->");
                    n = n+1;
                }else if (n==1){
                    System.out.println();
                }
              
            }

        }
    }
}

Muy bueno, nunca habia visto un for each para arreglos jajaja no se me habia ocurrido

Muchas gracias, por todos los conocimientos compartidos y por la forma de llevar el curso

Uf, pensé que iba a ser más fácil el foreach! 😄

También se podría imprimir todo un array completo para evitar los println dentro de for each

int[][][] numerous = new int[3][3][3];

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        for (int k = 0; k < 3; k++) {
            numerous[i][j][k] = i + j + k;
        }
    }
}

System.out.println(Arrays.deepToString(numerous));

Output:

[[[0, 1, 2], [1, 2, 3], [2, 3, 4]], [[1, 2, 3], [2, 3, 4], [3, 4, 5]], [[2, 3, 4], [3, 4, 5], [4, 5, 6]]]

Excelente explicación

No se si estoy pecando de ignorante, pero al ser de 4 dimensiones, la capacidad del array es de 24, al no ingresar los valores de tamaño del array, anahi obtuvo solo 4 espacios, aqui a lo que me refiero.

String [][][][] animals = new String[2][3][2][2];
        animals[1][0][0][1] = "Monkey";

(2*3)(2*2)=24

for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 3 ; j++) {
                for (int k = 0; k < 2 ; k++) {
                    for (int l = 0; l < 2 ; l++) {
                        System.out.println(animals[i][j][k][l]);
                    }
output :null
null
null
null
null
null
null
null
null
null
null
null
null
Monkey
null
null
null
null
null
null
null
null
null
null

Alguien me podría responder si me estoy equivocando? porfa!

/**
 * Descripción: Creación de arrays y recorridos con bucles for i y for each
 */
public class Arrays {
    public static void main(String[] args) {
        String[] androidVersions = new String[17];
        int days[] = new int[7];

        String[][] cities = new String[4][2];   //4 * 2 = 8

        int [][][] numbers = new int [2][2][2];
        int [][][][] numbers4 = new int [2][2][2][2];

        androidVersions[0] = "Apple Pie";
        androidVersions[1] = "Bannana Bread";
        androidVersions[2] = "Cupcake";
        androidVersions[3] = "Donut";

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

        for (String androidVersion : androidVersions) {
            System.out.println(androidVersion);
        }

        /*
        System.out.println(androidVersions[0]);
        System.out.println(androidVersions[1]);
        System.out.println(androidVersions[2]);
        System.out.println(androidVersions[3]);
        */
        /*
        for (int i = 0; i < days.length; i++) {
            System.out.println(days[i]);
        }
        */

        cities[0][0] = "Colombia";
        cities[0][1] = "Medellín";
        cities[1][0] = "Colombia";
        cities[1][1] = "Bogotá";
        cities[2][0] = "México";
        cities[2][1] = "Guadalajara";
        cities[3][0] = "México";
        cities[3][1] = "CDMX";

        //Bucle for i anidado
        /*for (int i = 0; i < cities.length; i++) {
            for (int j = 0; j < cities[i].length; j++) {
                System.out.println(cities[i][j]);
            }
        }*/

        //Bucle for each anidado
        for (String[] pair : cities) {
            for ( String name : pair) {
                System.out.println(name);
            }
        }

        /*
        System.out.println(cities[0][0]);
        System.out.println(cities[0][1]);
        System.out.println(cities[1][0]);
        System.out.println(cities[1][1]);
        System.out.println(cities[2][0]);
        System.out.println(cities[2][1]);
        System.out.println(cities[3][0]);
        System.out.println(cities[3][1]);
        */

        String[][][][] animals = new String[2][3][2][2];
        animals[1][0][0][1] = "Monkey";

        System.out.println();
        System.out.println();
        System.out.println(animals[1][0][0][1]);

        for (int i = 0; i <= 1 ; i++) {
            for (int j = 0; j <= 0 ; j++) {
                for (int k = 0; k <= 0 ; k++) {
                    for (int l = 0; l <= 1 ; l++) {
                        System.out.println(animals[1][0][0][1]);
                    }
                }
            }
        }
    }
}```

Ciclos For anidados

Profe Ann como siempre impecables sus clases y me encanta la manera como nos enseña por primera ves digo que amo esta carrera y es gracias al método de enseñanza bueno también me quede con la duda del monkey en el Foreach le adjunto mis codigos para saber si estoy bien o no!!!

public class Arrays {
    public static void main(String[] args) {

        // Los arreglos siempre van a ser en plural ya que son coleccion de datos
        /**
         * Descripción: [] Arreglo de una dimensión
         * @param [] Arreglo de una dimension
         * */
        String[] androidVersions = new String[17];

        //Arreglo de una dimension
        androidVersions[0] = "Apple Pie";
        androidVersions[1] = "Bannana Break";
        androidVersions[2] = "Cupcake";
        androidVersions[3] = "Donut";

        System.out.println(androidVersions[0]);
        System.out.println(androidVersions[1]);
        System.out.println(androidVersions[2]);
        System.out.println(androidVersions[3]);
        System.out.println();

        String days[] = new String[7];
        //Arreglo de una dimension


        days[0]= "Lunes";
        days[1]= "Martes";
        days[2]= "Miercoles";
        days[3]= "Jueves";
        days[4]= "Viernes";
        days[5]= "Sabado";
        days[6]= "Domingo";

        System.out.println(days[1]);
        System.out.println(days[2]);
        System.out.println(days[3]);
        System.out.println(days[4]);
        System.out.println(days[5]);
        System.out.println(days[6]);
        System.out.println(days[7]);
        System.out.println();

        /**
         * Descripción: [] Arreglo de dos dimensiónes
         * @param [][] Arreglo de dos dimensiones
         * */
        String[][] cities = new String[4][2]; //4*2 estas son matrices que le caben 8 elementos
        /*
         * +------------------------+
         * | Country  |    City     |
         * --------------------------
         * |Ecuador   |  Quito      |
         * |BieloRusia|  Grodno     |
         * |Colombia  |  Bogotá     |
         * |Mexico    |  CDMX       |
         * +------------------------+
         **/

        //Arreglo de dos dimensiones

        cities[0][0] = "Mexico";
        cities[0][1] = "CDMX";
        cities[1][0] = "Colombia";
        cities[1][1] = "Bogota";
        cities[2][0] = "BieloRusia";
        cities[2][1] = "Grodno";
        cities[3][0] = "Ecuador";
        cities[3][1] = "Quito";

        System.out.println(cities[0][0]);
        System.out.println(cities[0][1]);
        System.out.println(cities[1][0]);
        System.out.println(cities[1][1]);
        System.out.println(cities[2][0]);
        System.out.println(cities[2][1]);
        System.out.println(cities[3][0]);
        System.out.println(cities[3][1]);
        System.out.println();


        /**
         * Descripción: [] Arreglo de tres dimensiónes
         * Cuando se define arreglo de 3 elementos es mejor
         * llevar a una base de datos.
         * Se los maneja mas con calculos numericos matrices o graficos en tres dimensiones
         * @param [][][] Arreglo de tres dimensiones
         * */

        int [][][] numbers = new int[2][2][2];
        int [][][][] numbers4 = new int[2][2][2][2];

        //Arreglo de 4 dimensiones

        //Changuito buscar en que posicion se encuentra

        String[][][][] animals = new String[2][3][2][2];
        animals[1][0][0][1] = "Monkey";

        System.out.println();
        System.out.println();
        System.out.println(animals [1][0][0][1]);

        





    }
}
public class ArraysCiclosForAnidados {
    public static void main(String[] args) {
        /**
         * Descripción: [] Arreglo de una dimensió
         * @param [] Arreglo de una dimension
         * */
        String[] androidVersions = new String[17];
        //Arreglo de una dimension
        androidVersions[0] = "Apple Pie";
        androidVersions[1] = "Bannana Break";
        androidVersions[2] = "Cupcake";
        androidVersions[3] = "Donut";
        //Bucles de ciclos FOR anidados
        //Aqui tenemos con la variante <  en enght
        for (int i = 0; i < androidVersions.length; i++) {//17
            System.out.println(androidVersions[i]);
        }
        System.out.println();
        //Aqui tenemos con la variante -1 en lenght
        System.out.println();
        for (int i = 0; i <= androidVersions.length-1; i++) {//17
            System.out.println(androidVersions[i]);
        }
        System.out.println();
        String days[] = new String[7];
        //Arreglo de una dimension
        days[0]= "Lunes";
        days[1]= "Martes";
        days[2]= "Miercoles";
        days[3]= "Jueves";
        days[4]= "Viernes";
        days[5]= "Sabado";
        days[6]= "Domingo";

        for (int i = 0; i < days.length ; i++) {
            System.out.println(days[i]);
        }
        System.out.println();
        int days1[] = new int[7];
        for (int i = 0; i <days1.length ; i++) {
            System.out.println(days1[i]);
        }
        System.out.println();
        /**
        * Descripción: [] Arreglo de dos dimensiónes
        * @param [][] Arreglo de dos dimensiones
         * */
         String[][] cities = new String[4][2]; //4*2 estas son matrices que le caben 8 elementos
        /*
         * +------------------------+
         * | Country  |    City     |
         * --------------------------
         * |Ecuador   |  Quito      |
         * |BieloRusia|  Grodno     |
         * |Colombia  |  Bogotá     |
         * |Mexico    |  CDMX       |
         * +------------------------+
         **/
         //Arreglo de dos dimensiones
        cities[0][0] = "Mexico";
        cities[0][1] = "CDMX";
        cities[1][0] = "Colombia";
        cities[1][1] = "Bogota";
        cities[2][0] = "BieloRusia";
        cities[2][1] = "Grodno";
        cities[3][0] = "Ecuador";
        cities[3][1] = "Quito";
        for (int i = 0; i < cities.length; i++) {
            for (int j = 0; j < cities[i].length; j++) {
                System.out.println(cities[i][j]);
            }
        }
        System.out.println();
        /**
         * Descripción: [] Arreglo de tres dimensiónes
         * Cuando se define arreglo de 3 elementos es mejor
         * llevar a una base de datos.
         * Se los maneja mas con calculos numericos matrices o graficos en tres dimensiones
         * @param [][][] Arreglo de tres dimensiones
         * */
        int [][][] numbers = new int[2][2][2];
        int [][][][] numbers4 = new int[2][2][2][2];
        //Arreglo de 4 dimensiones
        String[][][][] animals = new String[2][3][2][2];
        animals[1][0][0][1] = "Monkey";
        System.out.println(animals [1][0][0][1]);
        System.out.println();
        //Changuito buscar en que posicion se encuentra
        for (int i = 0; i <= 1; i++) {
            for (int j = 0; j <= 0; j++) {
                for (int k = 0; k <= 0; k++) {
                    for (int l = 0; l <= 1; l++) {
                        System.out.println(animals[i][j][k][l]);
                    }
                }
            }
        }
    }
}
public class ArraysCiclosForForeach {
    public static void main(String[] args) {
        /**
         * Descripción: [] Arreglo de una dimensió
         * @param [] Arreglo de una dimension
         * */
        String[] androidVersions = new String[17];
        //Arreglo de una dimension
        androidVersions[0] = "Apple Pie";
        androidVersions[1] = "Bannana Break";
        androidVersions[2] = "Cupcake";
        androidVersions[3] = "Donut";
        for (String androidVersion:androidVersions) {
            System.out.println(androidVersion);
        }
        System.out.println();
        String days[] = new String[7];
        //Arreglo de una dimension
        days[0]= "Lunes";
        days[1]= "Martes";
        days[2]= "Miercoles";
        days[3]= "Jueves";
        days[4]= "Viernes";
        days[5]= "Sabado";
        days[6]= "Domingo";
        for (String day:days) {
            System.out.println(day);
        }
        System.out.println();
        int days1[] = new int[7];
        for (int day:days1) {
            System.out.println(day);
        }
        System.out.println();
        /**
         * Descripción: [] Arreglo de dos dimensiónes
         * @param [][] Arreglo de dos dimensiones
         * */
        String[][] cities = new String[4][2]; //4*2 estas son matrices que le caben 8 elementos
        /*
         * +------------------------+
         * | Country  |    City     |
         * --------------------------
         * |Ecuador   |  Quito      |
         * |BieloRusia|  Grodno     |
         * |Colombia  |  Bogotá     |
         * |Mexico    |  CDMX       |
         * +------------------------+
         **/
        //Arreglo de dos dimensiones
        cities[0][0] = "Mexico";
        cities[0][1] = "CDMX";
        cities[1][0] = "Colombia";
        cities[1][1] = "Bogota";
        cities[2][0] = "BieloRusia";
        cities[2][1] = "Grodno";
        cities[3][0] = "Ecuador";
        cities[3][1] = "Quito";
        for (String[] pair :cities) {
            for (String name :pair) {
                System.out.println(name);
            }
        }
        System.out.println();
        /**
         * Descripción: [] Arreglo de tres dimensiónes
         * Cuando se define arreglo de 3 elementos es mejor
         * llevar a una base de datos.
         * Se los maneja mas con calculos numericos matrices o graficos en tres dimensiones
         * @param [][][] Arreglo de tres dimensiones
         * */
        //Arreglo de 4 dimensiones
        String[][][][] animals = new String[2][3][2][2];
        animals[1][0][0][1] = "Monkey";
        for (String[][][] i: animals) {
            for (String[][] j:i) {
                for (String[]k:j) {
                    for (String l: k) {
                        System.out.println(l);
                    }
                }
            }
        }
    }
}

Y de igual manera mucha gracias por todo y a los compañeros de clase igual me sacaron todas esas dudas que tenia

excelente clase!

excelente información, muchas gracias.

Ahora tengo claro la forma de utilizar los ciclos Foreach y cómo aprovechar al máximo la anidación de ciclos for para manipular datos en los arreglos, muchas gracias instructora Anahí.

Me fue un poco complicado entender el For anidados debió detallar un poco mas como funciona.

public class PracticaArrays {
public static void main(String[] args) {

    String [] androidVersions = new String[17];
    System.out.println("Versiones Android\n");
    androidVersions[0] = "Apple Pie";
    androidVersions[1] = "Banana Bread";
    androidVersions[2] = "Cupcake";
    androidVersions[3] = "Donut";

    for (int i = 0; i <4; i++){
        System.out.println("Version "+(i+1)+" "+androidVersions[i]);
    }
    System.out.println("\n************************\n");

    System.out.println("Cities\n");
    String [][] cities = new String[4][2];
    cities[0][0] = "Colombia";
    cities[0][1] = "Medellin";
    cities[1][0] = "Colombia";
    cities[1][1] = "Bogotá";
    cities[2][0] = "Mexico";
    cities[2][1] = "Ciudad de Mexico";
    cities[3][0] = "Mexico";
    cities[3][1] = "Leon";

    for (int x = 0; x<4; x++){
        for(int y = 0; y<2; y++){
            System.out.print(cities[x][y]+"\t\t");
        }
        System.out.println(" ");
    }
}

}

En el for anidado que imprime el arreglo de 4 dimensiones, se imprime 3 nulls antes de monkey?.

super útil el for each

Para los array List

List<String> days = new ArrayList<>();
days.add("Monday");
days.add("Tuesday");

for (int i = 0; i < days.size() ; i++) {
	System.out.println(days.get(i));
}
for (String day: days) {
            System.out.println(day);
}


    androidVersions[0] = "Apple Pie";
    androidVersions[1] = "Bannana Bread";
    androidVersions[2] = "Cupcake";
    androidVersions[3] = "Donut";

    for (int i = 0; i < androidVersions.length; i++) {
        if (androidVersions[i] == null){
            continue;
        } else {
            System.out.println(androidVersions[i]);
        }
    }

Para imprimir el array por completo podemos usar:

        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                System.out.println(country[i][j]);
            }
        }

2do metodo

    List<String> androidList = new ArrayList<>();
    for (int i = 0; i < androidVersions.length; i++) {
      String str = androidVersions[i];
      if (str != null) {
        androidList.add(str);
      }
    }

    androidList.forEach((n) -> System.out.println("2Method -> "+n));


Hace mucho no venia un for aninado

Excelente curso ✔
Siguente curso a tomar “Programación Orientada a Objetos”.

Gracias, el curso fue bastante entretenido y productivo!

Genial!! Me encanto!

[1][0][0][1] arreglo de 4 dimenciones

{
for (int i = 0; i <=3 ; i++) {
for (int j = 0; j <=1 ; j++) {
System.out.println(cities[i][j]);
}

for (int i = 0; i <=3 ; i++) {
for (int j = 0; j <=1 ; j++) {
System.out.println(cities[i][j]);

        }

Volví a tomar el curso porque me encantó, gracias Anahi!!

Uy no conocía ese foreach, bastante interesante.

Me han quedado más claros los For anidados, me hubiera servido haber visto este video antes de mi clase de lógica de programación

Eres una gran Docente Anahi!

Excelente explicación de los ciclos foreach thanks!!

excelente curso

Genial.

public class Arrays {
    public static void main(String[] args) {
        String[] androidVersions = new String[17];
        String days[] = new String[7];

        String[][] cities = new String[4][2]; //4*2 = 8
        int [][][] numbers = new int[2][2][2];
        int [][][][] numbers4 = new int [2][2][2][2];

        androidVersions[0] = "Apple Pie";
        androidVersions[1] = "Bannana Bread";
        androidVersions[2] = "Cupcake";
        androidVersions[3] = "Donut";

       /* for(int i = 0; i <= 3; i++) {
            System.out.println(androidVersions[i]);
        }*/

        for (String androidVersion : androidVersions) {
            System.out.println(androidVersion);
        }
        System.out.println("\n\n");

        cities[0][0] = "Colombia";
        cities[0][1] = "Medellin";
        cities[1][0] = "Colombia";
        cities[1][1] = "Bogota";
        cities[2][0] = "Mexico";
        cities[2][1] = "Guadalajara";
        cities[3][0] = "Mexico";
        cities[3][1] = "CMDX";

        /*for(int j = 0; j < 4; j++){
            for(int k =0; k < 2; k++){
                System.out.println(cities[j][k]);
            }
        }*/
        for (String[] pair: cities) {
            for (String name: pair) {
                System.out.println(name);
            }
            
        }

        System.out.println("\n\n");

        String[][][][] animals = new String[2][3][2][2];
        animals[1][0][0][1] = "Monkey";
        System.out.println(animals[1][0][0][1]);

        for (int i = 0; i < 1; i++) {
            for (int j = 0; j <= 0; j++) {
                for (int k = 0; k <= 0; k++) {
                    for (int l = 0; l <=1 ; l++) {
                        System.out.println(animals[i][j][k][l]);
                    }
                }
            }
        }
    }
}```

For each; no lo había visto antes;

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

        for (String androidVersion : androidVersions) {
            System.out.println(androidVersion);
        }

Versión foreach:

 for (String[] city : cities) {
            System.out.println ();
            for (String s : city) {
                System.out.print (s);
            }
        }

Una forma más de imprimir tu arreglo

System.out.println("Country:\tCity");
        for (String[] city : cities) {
            for (int j = 0; j < city.length; j++) {
                System.out.print(city[j]);
                if (j == 0) {
                    System.out.print(":\t\t");
                } else {
                    System.out.println();
                }
            }
        }

Muy buena clase. Gracias.

Me habia confundido bastante cuando imprime el array Animals, es porque usa los parametros de la posicion en que está, no de la cantidad de espacio de cada dimensión, como a continuación

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        for (int k = 0; k < 2; k++) {
            for (int l = 0; l < 2; l++) {
                System.out.println(animals[i][j][k][l]);
            }
        }
    }
}

Así sí muestra al changuito en la posicion que está entre todos los nulls

Como aporte, Si quieren imprimir el array completo

Para un array de 1 dimension :

System.out.println(Arrays.toString(nombre_de_tu_array));

Para un array de 2 dimensiones o mas:

System.out.println(Arrays.deepToString(nombre_de_tu_array));

“Arrays” viene de la libreria “java.util.Arrays” asi que sera nesesario colocar esta linea al comienzo de tu archivo .java

import java.util.Arrays;

Documentacion

Sin terminar de ver el video hice mi propio cilco anidados para el arreglo de paises…
//ACCEDIENDO A VALORES DE UN ARREGLO DE DOS DIMENCIONES.
for (int i = 0; i <= 3; i++) {
for (int j = 0; j <= 1 ; j++) {
System.out.println(paisesYCiudades[i][j]);
}
}

Ahora comprendí la diferencia entre vacío y valor null.

String encuentraElMono[][][][] = new String[2][3][2][2];
        encuentraElMono[1][0][0][1] = "Monkey";
        for (int fila = 0; fila < encuentraElMono.length; fila++) {
            for (int columna = 0; columna < encuentraElMono[fila].length; columna++) {
                for (int filaInterna = 0; filaInterna < encuentraElMono[fila][columna].length; filaInterna++) {
                    for (int columnaInterna = 0; columnaInterna < encuentraElMono[fila][columna][filaInterna].length; columnaInterna++) {
                        System.out.println(encuentraElMono[fila][columna][filaInterna][columnaInterna]);
                    }
                }

            }

        }
for (String[][][] i : encuentraElMono) {
            for (String[][] j : i) {
                for (String[] k : j) {
                    for (String l : k) {
                        System.out.println("looking for the monkey with foreach " + l);
                    }
                }
            }
        }

ACCEDER A UN ARRAY DE 1 DIMENSIÓN UTILIZANDO EL CICLO FOR

_

Hola me gustaria compartir con ustedes el for de 4 dimensiones. Si algo se puede mejorar estare pendiente de los comentarios :) `// four dimensions` `String[][][][] animals = ``new ``String[2][3][2][2];` `animals[0][0][0][1] = "Monkey";` `animals[1][1][0][0] = "Dog";` `animals[1][2][1][1] = "Donkey";` `System.out.println();` `for ``(``int ``i = 0; i < animals.length ; i++) {` ` ``for ``(``int ``j = 0; j < animals[i].length ; j++) {` ` ``for ``(``int ``k = 0; k < animals[i][j].length ; k++) {` ` ``for ``(``int ``l = 0; l < animals[i][j][k].length ; l++) {` ` ``if ``(animals[i][j][k][l] != ``null``) System.out.println(animals[i][j][k][l]);` ` }` ` }` ` }` ` ` `}` `//forEach` `for (String[][][] pair : animals) {` ` for (String[][] pair2 : pair) {` ` for (String[] pair3 : pair2) {` ` for (String finalA : pair3) {` ` if (finalA != null ) System.out.println(finalA);` ` }` ` }` ` }` `}`
*public* *class* MatrizIntermedio{ *public* *static* *void* main(*String*\[] *args*){ *// Diagonal principal: Imprime los elementos de la diagonal principal de una matriz.* *// Matriz traspuesta: Calcula la matriz traspuesta de una matriz dada.* *int* matrizTres\[] \[] = new *int*\[3]\[3]; matrizTres\[0]\[0] = 1; matrizTres\[0]\[1] = -2; matrizTres\[0]\[2] = 5; matrizTres\[1]\[0] = 10; matrizTres\[1]\[1] = 11; matrizTres\[1]\[2] = 133; matrizTres\[2]\[0] = 0; matrizTres\[2]\[1] = -7; matrizTres\[2]\[2] = 67; System.out.println(matrizTres\[0]\[0]+" "+matrizTres\[1]\[0]+" "+matrizTres\[2]\[0]); System.out.println(matrizTres\[0]\[1]+" "+matrizTres\[1]\[1]+" "+matrizTres\[2]\[1]); System.out.println(matrizTres\[0]\[2]+" "+matrizTres\[1]\[2]+" "+matrizTres\[2]\[2]);
si esta aqui querido compañero te garantizo que el viaje recien empieza se fuerte pero quiébrate no te mentiré el camino sera durísimo pero muy bueno y de calidad y aprendizaje solo corre descansa y vuelve a la guerra no deje de ser constante sin mas que decir les deseo lo mejor futuros developer
\<public class Arrays { public static void main(String\[] args) { // Single-dimensional array for Android versions String\[] androidVersions = new String\[17]; // Single-dimensional array for days String\[] days = new String\[7]; // Two-dimensional array for cities String\[]\[] cities = new String\[4]\[2]; // Initialize some elements of the androidVersions array androidVersions\[0] = "Apple Pie"; androidVersions\[1] = "Banana Bread"; androidVersions\[2] = "Cupcake"; androidVersions\[3] = "Donut"; // Print all initialized elements of androidVersions System.*out*.println("Android Versions:"); for (int i = 0; i < androidVersions.length; i++) { if (androidVersions\[i] != null) { System.*out*.println(androidVersions\[i]); } } System.*out*.println(); // Initialize some elements of the days array days\[0] = "Lunes"; days\[1] = "Martes"; days\[2] = "Miercoles"; days\[3] = "Jueves"; // Print all initialized elements of days System.*out*.println("Days:"); for (int i = 0; i < days.length; i++) { if (days\[i] != null) { System.*out*.println(days\[i]); } } System.*out*.println(); // Initialize some elements of the cities array cities\[0]\[0] = "Colombia"; cities\[0]\[1] = "Medellin"; cities\[1]\[0] = "USA"; cities\[1]\[1] = "New York"; cities\[2]\[0] = "UK"; cities\[2]\[1] = "London"; cities\[3]\[0] = "Japan"; cities\[3]\[1] = "Tokyo"; // Print all initialized elements of cities System.*out*.println("Cities:"); for (int i = 0; i < cities.length; i++) { for (int j = 0; j < cities\[i].length; j++) { if (cities\[i]\[j] != null) { System.*out*.println(cities\[i]\[j]); } } } } } \>
For each para el array de animals y que no muestre los nulos. ```js for (String[][][] cuartaD : animals){ for (String[][] terceraD : cuartaD){ for (String[] segundaD : terceraD){ for (String primeraD : segundaD){ if (primeraD == null){ continue; } System.out.println(primeraD); } } } } ```
Encontré esta forma de usar for each en arreglos de tres y cuatro dimensiones: ```js // Arreglo de tres dimensiones: for (String[][] pair:cupcakes){ for (String[] box:pair) { for (String muffin:box) { System.out.println(muffin); } } } ``` }```js // Arreglo de cuatro dimensiones: for (String[][][] pair:animals){ for (String[][] species:pair) { for (String[] enclosure:species) { for (String other:enclosure) { System.out.println(other); } } } } ```

ACCEDER A UN ARRAY DE 2 DIMENSIONES UTILIZANDO EL CICLO FOR ANIDADO

_





Me ecanta como da las clases la profe, tengo experiencia y trabajo en el sector de desarrollo de software y hasta el dia de hoy comprendo algunos detalles que no me mostraron en la universidad ni en la vida laboral.

Te amo Anahí Salgado Díaz de la Vega

Jsajajajs la clase anterior hice el aporte sin saber que en esta clase veríamos esto, me quemé el cerebro casi 20 minutos y Anahí lo explicó todo ahorita jajaja.

Array de 2 a más dimensionesn en For anidados

Sin parangón, excelente!!

Excelente explicacion de los for each no los tenia muy claro.

Oh super explicado For Each 😃

Super clase 😃

muy clara la explicación de los ciclos for each

Todo clarísimo. Gracias

Excelente anahi no sabia que podia usar de esa forma el foreach. Graciaas.

que vaina tan dura después de las dos dimensiones jajaja

Excelente clase de for

explicas bien anahi

cities[0][0]="Peru";
        cities[0][1]="Mexico";
        cities[1][0]="Bolivia";
        cities[1][1]="Corea delSur";

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