No tienes acceso a esta clase

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

Curso de Introducción a Java SE

Curso de Introducción a Java SE

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 97

Preguntas 8

Ordenar por:

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

o inicia sesión.

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 😦


excelente seguimos en tomando de esta taza de café, algunas veces será amarga y en otros muy dulce, al final será muy saludable es su justa medida.

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.

Un ejemplo en C#. Que lindo se ve ordenado

Les comparto este repositorio que sirve de guía para el examen final, pues contiene las preguntas que se encuentran en el examen, la justificación y el video del curso donde se habla sobre eso. Espero y les sea de utilidad 😄.
Platzi-Test

Muy elegante utilizar el foreach en arrays multidimensionales.

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

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

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.

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



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]);

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);
            }
        }

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

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

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

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);
    }
}

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]);```

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

Gracias, muy bien explicado!

que quiere decir con pair ?

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
}

Excelente explicación de los Ciclos For anidados

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

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.

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]);
}
}

Hace mucho no venia un for aninado

Array de 2 a más dimensionesn en For anidados

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

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));


Muy buena clase. Gracias.

    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]);
        }
    }

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();
                }
            }
        }

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]);
            }
        }

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]]]

Versión foreach:

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

Hay una pagina que se llama python tutor la cual muestra de manera grafica la asignacions de los datos en los arrays.

/**
 * 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]);
                    }
                }
            }
        }
    }
}```

Gran curso… Muchas Gracias!!!

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

excelente curso… me sirvio para reforsar

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

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í.

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

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

Gracias, el curso fue bastante entretenido y productivo!

Genial!! Me encanto!

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]);
}

Excelente explicación

excelente información, muchas gracias.

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

excelente clase!

Sin parangón, excelente!!

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

excelente curso

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

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

Eres una gran Docente Anahi!

Excelente explicación de los ciclos foreach thanks!!

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

Ciclos For anidados

Oh super explicado For Each 😃

super útil el for each

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

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(" ");
    }
}

}


-

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]);
                    }
                }
            }
        }
    }
}```

Super clase 😃

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

        for (String androidVersion : androidVersions) {
            System.out.println(androidVersion);
        }
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 clara la explicación de los ciclos for each

For each; no lo había visto antes;

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!

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

Todo clarísimo. Gracias

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);
}


Gracias profe, muy buen curso de iniciación.

Me quedo completamente claro el bucle for eco se lo utiliza mas a menudo para obtener un dato de un <List> de objetos cuando haces una consulta a una base de datos .

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]);
            }
        }

El bucle foreach es más que nada para arrays unidimensionales (bajo mi punto de vista)

Para no imprima los elementos nulos

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

increíble clase, con practica se domina mucho mas

Excelente clase de for

Muy bien explicado gracias profesora.
con la practica se asimila este conocimiento.

Pueden iterar mejor los arrays de 2 dimensiones así para que se vea más estético.

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

Esto imprimirá el arreglo por reglones como si fuera una especie de tabla

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

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