Las butacas del cine
En una sala de cine hay filas, y en cada fila hay butacas.
Para nombrarlas todas haces dos cosas. Para cada fila, recorres todas sus butacas.
Es un bucle dentro de otro bucle. Con él también se dibujan figuras y se hacen tablas.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Bucle anidado | Un bucle escrito dentro de otro bucle. | for dentro de un for |
| Bucle de fuera | El bucle grande. Da una vuelta por cada fila. | for (int row ...) |
| Bucle de dentro | El bucle pequeño. Da todas sus vueltas en cada vuelta del de fuera. | for (int col ...) |
| Escribe sin saltar de línea. La siguiente cosa sale a continuación. | System.out.print("*"); | |
| println | Escribe y salta a la línea de abajo. | System.out.println(); |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Cómo funciona
El bucle de fuera da una vuelta. Entonces el de dentro da todas las suyas.
Después el de fuera da la segunda vuelta, y el de dentro empieza otra vez desde el principio.
Piensa en las agujas de un reloj. Cuando la de los minutos da una vuelta entera, la de las horas avanza un poco.
Pruébalo: un rectángulo de asteriscos
public class Main {
public static void main(String[] args) {
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 5; col++) {
System.out.print("*");
}
// Al acabar la fila, saltamos a la línea de abajo.
System.out.println();
}
// Cambia el 3 y el 5 por otros números.
}
}
print no salta de línea
Consejo
Dentro usamos print, para que los asteriscos queden juntos. Al acabar cada fila usamos println() vacío, que solo salta de línea. Si te equivocas, sale una columna.
Ejemplo resuelto: 2 filas y 3 columnas
| Fila (fuera) | Columna (dentro) | Qué escribe |
|---|---|---|
| 1 | 1 | * |
| 1 | 2 | * |
| 1 | 3 | * y salto de línea |
| 2 | 1 | * |
| 2 | 2 | * |
| 2 | 3 | * y salto de línea |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Cuántas veces se repite
Mira la tabla. Hay 2 filas y 3 columnas. La línea de dentro se hizo 6 veces.
Es una multiplicación: 2 por 3 son 6. Con 3 filas y 5 columnas serían 15 asteriscos.
Cuidado con los números grandes: 100 por 100 son 10000 vueltas.
Pruébalo: las butacas del cine
public class Main {
public static void main(String[] args) {
for (int row = 1; row <= 2; row++) {
for (int seat = 1; seat <= 3; seat++) {
System.out.println("Fila " + row + ", butaca " + seat);
}
}
// Añade una fila más y cuenta cuántas líneas salen.
}
}
Cuando el de dentro depende del de fuera
Hasta ahora el bucle de dentro daba siempre las mismas vueltas.
Pero puede depender del de fuera. Si escribes col <= row, la fila 1 tiene 1 asterisco, la fila 2 tiene 2, y así.
Sale un triángulo.
Pruébalo: un triángulo
public class Main {
public static void main(String[] args) {
for (int row = 1; row <= 4; row++) {
// El número de asteriscos es igual al número de fila.
for (int col = 1; col <= row; col++) {
System.out.print("*");
}
System.out.println();
}
// Cambia col <= row por col <= 4 y mira la figura.
}
}
Repaso rápido
Inténtalo
Repaso rápido
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.