Bucles anidados en Java

java_base_web

Hola a todos, hoy os explicare como entender el uso de bucles anidados.

Un bucle anidado es un bucle dentro de otro bucle, debemos de tener en cuenta como lo podemos utilizar correctamente, esta práctica se suele utilizar para recorrer arrays multidimensionales o manejar coordenadas, por ejemplo.

Una buena practica es dibujar figuras geométricas regulares.  Veamos un ejemplo, dibujemos un cuadrado con asteriscos:

import javax.swing.JOptionPane;
public class CuadradoApp {

	public static void main(String[] args) {

		String texto=JOptionPane.showInputDialog("Escribe el lado del cuadrado");
		int lado=Integer.parseInt(texto);

		cuadrado(lado);

	}
	public static void cuadrado (int lado){
		int numeroasteriscos=lado;

		//Dibujamos la parte de arriba del cuadrado
		for(int cont=0;numeroasteriscos>cont;cont++){
			System.out.print("*");
		}
		System.out.println("");

		//Usamos un bucle anidado para dibujar los asteriscos del medio
		for(int cont=1;(numeroasteriscos-2)>=cont;cont++){
			System.out.print("*");
			//Este bucle dibuja los espacio entre el primer y ultimo asterisco
			for (int i=0;(numeroasteriscos-2)>i;i++){
				System.out.print(" ");
			}
			System.out.print("*");
			System.out.println("");
		}

		//Dibujamos la parte de abajo del cuadrado
		for(int cont=0;numeroasteriscos>cont;cont++){
			System.out.print("*");
		}
	}

}

Este es el resultado si insertamos de lado un 5:

cuadrado

Como vemos en el anterior ejemplo, necesitamos el bucle anidado para dibujar la parte del medio del cuadrado, es como manejar coordenadas, el bucle principal controla las filas y el bucle anidado las columnas.

Espero que os sea de ayuda. Si tenéis dudad, preguntad. Estamos ayudarte.

Etiquetas

4 comments

  1. Como hago para que me imprima lo sigueinte:
    2
    3 1
    4 2
    5
    Ayudame, por fa

  2. como hago para obtener en pantalla esto:
    2,8,16,32,64,128
    al ingresar el numeroo 7

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *