Bucles en Java: for, while, do while Con Ejemplos

Basico

Aprenda sobre la estructura repetitiva en Java. Conceptos y ejemplos sobre bucles for, while, do while para aprender Java en instantes.

Un bucle en lenguajes de programación es una característica que facilita la ejecución de un conjunto de instrucciones/funciones repetidamente, mientras que algunas condiciones se evalúan como verdaderas.

Java proporciona tres formas de ejecutar los bucles. Si bien todas las formas proporcionan una funcionalidad básica similar, difieren en su sintaxis y el tiempo de comprobación de la condición. Veamos las 3 formas:

1. Bucle while

Un bucle while es una sentencia de control de flujo que permite que el código se ejecute repetidamente en función de una condición booleana dada. El bucle while se puede considerar como una instrucción if repetitiva.

Sintaxis:

while (condición booleana)
{
   declaraciones del bucle ...
}
Bucle while en Java
Diagrama de flujo: Bucle while en Java
  • El while comienza con la verificación de la condición. Si se evalúa como verdadero, las instrucciones del cuerpo del bucle se ejecutan; de lo contrario, se ejecuta la primera instrucción que le sigue al bucle. Por esta razón, también se llama bucle de control de entrada.
  • Una vez que la condición se evalúa como verdadera, se ejecutan las instrucciones en el cuerpo del bucle.
  • Normalmente, las declaraciones contienen un valor de actualización para la variable que se procesa para la siguiente iteración.
  • Cuando la condición se vuelve falsa, el ciclo finaliza y marca el final de su ciclo de vida.

Ejemplo:

// Programa Java para ilustrar el bucle while
class whileLoopDemo
{
    public static void main(String args[])
    {
        int x = 1;
 
        // Salir cuando x llega a ser mayor que 4
        while (x <= 4)
        {
            System.out.println("Valor de x: " + x);
 
            //incrementa el valor de x para la siguiente iteración
            x++;
        }
    }
}

Salida:

Valor de x: 1
Valor de x: 2
Valor de x: 3
Valor de x: 4

2. Bucle for

El bucle for proporciona una forma concisa de escribir la estructura de bucle. A diferencia de un ciclo while, una sentencia for consume la inicialización, la condición y el incremento/decremento en una línea, proporcionando así una estructura de bucle más corta y fácil de depurar.

Sintaxis:

for (condición de inicialización, condición de prueba; 
                              incremento / decremento)
{
    declaracion(es)
}
Bucle for Java
Diagrama de Flujo: Bucle for en Java
  1. Condición de inicialización: Aquí, inicializamos la variable en uso. Marca el inicio de un ciclo for. Se puede usar una variable ya declarada o se puede declarar una variable, solo local para el bucle.
  2. Condición de prueba: se usa para probar la condición de salida de un bucle. Debe devolver un valor booleano. También es un bucle de control de entrada cuando se verifica la condición antes de la ejecución de las instrucciones de bucle.
  3. Ejecución de instrucción: una vez que la condición se evalúa como verdadera, se ejecutan las instrucciones en el cuerpo del bucle.
  4. Incremento/Decremento: se usa para actualizar la variable para la siguiente iteración.
  5. Terminación de bucle: cuando la condición se vuelve falsa, el bucle termina marcando el final de su ciclo de vida.

Ejemplo:

// Programa Java para ilustrar el bucle for.
class forLoopDemo
{
    public static void main(String args[])
    {
        // bucle for comienza cuando x=2
        // y corre hasta x <=4
        for (int x = 2; x <= 4; x++)
            System.out.println("Valor de x: " + x);
    }
}

Salida:

Valor de x: 2
Valor de x: 3
Valor de x: 4

2.1. Bucle for mejorado (for each)

Java también incluye otra versión del bucle for introducido en Java 5. La mejora del bucle for proporciona una forma más sencilla de iterar a través de los elementos de una colección o matriz. Es inflexible y debe usarse solo cuando existe la necesidad de recorrer los elementos de forma secuencial sin conocer el índice del elemento procesado actualmente.

Sintaxis:

for (Elemento T:Colección de obj/array)
{
    declaraciones)
}

Tomemos un ejemplo para demostrar cómo se puede utilizar “enhanced for” para simplificar el trabajo. Supongamos que hay una matriz de nombres y queremos imprimir todos los nombres en esa matriz. Veamos la diferencia con estos dos ejemplos:

El bucle mejorado (enhanced) de for simplifica el trabajo de la siguiente manera:

// Programa Java para ilustrar bucle for mejorado
public class Enhancedforloop
{
    public static void main(String args[])
    {
        String array[] = {"Ron", "Harry", "Hermoine"};
 
        //mejorado para for
        for (String x:array)
        {
            System.out.println(x);
        }
 
        /*bucle for para la misma función
        for (int i = 0; i < array.length; i++)
        {
            System.out.println(array[i]);
        }
        */
    }
}

Salida:

Ron
Harry
Hermoine
Nota para leer
Bucle for en Java (Puntos importantes)

3. Bucle do while

El bucle do while es similar al while con la única diferencia de que comprueba la condición después de ejecutar las instrucciones, y por lo tanto es un ejemplo de Exit Control Loop (Salir del bloque de control).

Bucle do while Java
Diagrama de Flujo: Bucle do while en Java
  1. El bucle do while comienza con la ejecución de la(s) declaración(es). No hay verificación de ninguna condición la primera vez.
  2. Después de la ejecución de los enunciados, y la actualización del valor de la variable, la condición se verifica para el valor verdadero o falso. Si se evalúa como verdadero, comienza la siguiente iteración del ciclo.
  3. Cuando la condición se vuelve falsa, el ciclo finaliza y marca el final de su ciclo de vida.
  4. Es importante tener en cuenta que el bucle do-while ejecutará sus declaraciones al menos una vez antes de que se verifique cualquier condición, y por lo tanto es un ejemplo de bucle de control de salida.

Ejemplo:

// Programa Java para ilustrar el bucle do-while
class dowhileloopDemo
{
    public static void main(String args[])
    {
        int x = 21;
        do
        {
            //El código dentro del do se imprime incluso
            //si la condición es falsa
            System.out.println("Valor de x :" + x);
            x++;
        }
        while (x < 20);
    }
}

Salida:

Valor de x: 21

4. Errores de bucles: Bucle infinito

Uno de los errores más comunes al implementar cualquier tipo de bucle es que nunca puede salir, es decir, el bucle se ejecuta durante un tiempo infinito. Esto sucede cuando la condición falla por alguna razón.

Ejemplo:

//Programa Java para ilustrar varias trampas de bucles.
public class LooppitfallsDemo
{
    public static void main(String[] args)
    {
 
        // bucle infinito porque la condición no es apta
        // la condición; debería haber sido i>0.
        for (int i = 5; i != 0; i -= 2)
        {
            System.out.println(i);
        }

        int x = 5; 
        // bucle infinito porque la actualización
        // no se proporciona
        while (x == 5)
        {
            System.out.println("En el bucle");
        }
    }
}

Otro inconveniente es que puede estar agregando algo en su objeto de colección a través de un bucle y puede quedarse sin memoria. Si intenta ejecutar el siguiente programa, después de un tiempo, se producirá una excepción de falta de memoria.

//Programa Java para la excepción de falta de memoria.
import java.util.ArrayList;
public class Integer1
{
    public static void main(String[] args)
    {
        ArrayList<Integer> ar = new ArrayList<>();
        for (int i = 0; i < Integer.MAX_VALUE; i++)
        {
            ar.add(i);
        }
    }
}

Salida:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at article.Integer1.main(Integer1.java:9)

Si tienes alguna duda en la implementación de bucles en Java, me comentas 😉

Bucles en Java
  • 10/10
    for, while, do while - 10/10

Sobre el Autor:

Hey hola! Yo soy Alex Walton y tengo el placer de compartir conocimientos hacía ti sobre el tema de Programación en Java, desde cero, Online y Gratis.

1 comentario

  1. […] menor que. Devuelven el resultado booleano después de la comparación y se usan ampliamente en las instrucciones de bucle, así como en las sentencias condicionales if/else. El formato general es, variable […]

  2. edy

    hay alguna forma para hacer que un ciclo se repita hasta que se ingrese una palabra enuna variable de tipo String?

Deja una Respuesta

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.