Bucles for, while y do while en JAVA

Como habrás deducido del título, en Java existen tres estructuras de control de repetición o bucles. Estas estructuras sirven para repetir una determinada tarea mientras se cumpla cierta condición. Un ejemplo de uso puede ser por ejemplo el recorrido secuencial de un array para ver su contenido.


El bucle for
Este bucle es el ideal para los casos en los que sepamos cual es el primer y el último elemento sobre los que iterar. Por ejemplo para recorrer arrays ya que sabemos que sus índices empiezan en 0 y el tamaño podemos obtenerlo mediante el atributo length. Su sintaxis es la siguiente:
for(inicio; condicion; incremento) {
    Tareas a realizar...
}
Puede resultar el bucle más complicado, pero una vez lo utilices, verás que es de lo más útil, de esta manera, viendo el pseudo código anterior, puede resultar un tanto lioso así que a continuación podéis ver un ejemplo de uso de este bucle:
int[] numeros = {1, 2, 3, 4, 5, 6};
for (int i = 0; i < numeros.length; i++) {
    System.out.println(numeros[i]);
}
Este ejemplo se encarga de recorrer el array "numeros", y muestra por pantalla su contenido, la variable "i" que se crea, solo existe dentro del bucle, y cuando este acabe, la variable se destruirá. Este es solo uno de los múltiples usos de este tipo de bucle, además, a partir de Java 5 se incluyó una variación de este bucle que se denomina for each, especialmente útil para iterar sobre elementos de una colección como un array. De esta manera el ejemplo anterior también lo podemos realizar de manera más simple con esta construcción:
int[] numeros = {1, 2, 3, 4, 5, 6};
for(int i: numeros) {
    System.out.println(i);
}
Este ejemplo da el mismo resultado que el anterior, pero con un código más simple ya que la variable creada en su interior "i" va tomando los valores de cada elemento del array "numeros", de esta manera no es necesario trabajar con los índices.

El bucle while (Se ejecuta 0 o más veces)
Este tipo de bucle es el más sencillo de todos, tan solo necesita una condición, que se evaluará antes de cada iteración, si esta condición es verdadera, se ejecutará el código del bucle hasta que dicha condición resulte falsa. Este bucle es apropiado cuando tenemos la necesidad de repetir una acción que no sabemos con certeza cuando acabará. A continuación podéis ver un ejemplo:
int opcion = (int)(Math.random() * 10);
while (opcion != 5) {
    opcion = (int)(Math.random() * 10);
}
System.out.println("Fin");
Este ejemplo es un poco tonto, pero muy bueno para ver la utilidad de while, en este caso como no sabemos cuando la expresión que genera números aleatorios entre 0 y 9 va a dar 5, es necesario utilizar este bucle. Cuando esta expresión de como resultado un 5, la condición se evaluará como falsa, y la ejecución del programa saldrá del bucle.

El bucle do while (Se ejecuta 1 o más veces)
Este bucle es muy parecido a while, salvo por la excepción de que la condición que decidirá si se itera más veces el bucle se ejecuta al final de ejecutarse el código del bucle. De esta manera si la condición desde el principio es falsa, el código se ejecutará 1 vez y saldremos del bucle, en el caso de while no se ejecutaría ninguna vez.
int opcion;
do {
    opcion = (int) (Math.random() * 10);
} while (opcion != 5);
System.out.println("Fin");
Como vemos, una diferencia también entre este y el bucle while, es que no es necesario dar un valor antes del bucle a la variable "opcion", ya que en el interior de este ya se está haciendo, y cuando se evalúe la condición, esta variable ya tendrá un valor.

Como nota final, los tres bucles son intercambiables, es decir, conociendo solamente uno, se podría hacer cualquier programa. El caso es saber cuando utilizar uno u otro, cuando sabemos el intervalo sobre el que queremos iterar, el bucle for es el más eficaz y fácil, si la condición de parada no involucra el valor de una posición, podemos utilizar while si necesitamos evaluar la condición antes o do while si queremos hacerlo después de la primera ejecución del código.

Comentarios

  1. tema muy interezante Gracias!!!!!

    ResponderEliminar
  2. omo puedo pedir 2 numeros y que me diga cual es mayor y menor con ciclo for y que el programa termine cuando son 2 numeros iduales

    ResponderEliminar
  3. omo puedo pedir 2 numeros y que me diga cual es mayor y menor con ciclo for y que el programa termine cuando son 2 numeros iduales

    ResponderEliminar

Publicar un comentario

Si tenéis alguna duda o sugerencia, no dudéis en comentar. ;)

Entradas populares de este blog

Calcular factorial de un numero en JAVA

Ordenar cualquier array con SORT en JAVA

Modificadores de acceso (public, protected y private) JAVA