Bucles de Java

Bucles de Java
Pruébalo en GfG Practice Progreso

Los bucles en la programación permiten que un conjunto de instrucciones se ejecute varias veces según una condición. En Java existen tres tipos de Loops que se explican a continuación:

1. para bucle

El bucle for se utiliza cuando conocemos el número de iteraciones (sabemos cuántas veces queremos repetir una tarea). La declaración for incluye la condición de inicialización y el incremento/disminución en una línea. 

Ejemplo: El siguiente programa Java demuestra un bucle for que imprime números del 0 al 10 en una sola línea.

Java
   // Java program to demonstrates the working of for loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <=     10  ;     i  ++  )     {      System  .  out  .  print  (  i     +     ' '  );      }      }   }   

Producción
0 1 2 3 4 5 6 7 8 9 10  

Sintaxis:

for (inicialización; condición; incremento/decremento) {

// código a ejecutar

}

La siguiente imagen muestra el diagrama de flujo de un bucle for:

bucle whileDiagrama de flujo del bucle for
  • Condición de inicialización : Aquí inicializamos la variable en uso. Marca el inicio de un bucle for. Se puede utilizar una variable ya declarada o se puede declarar una variable local para realizar un bucle únicamente.
  • Condición de prueba: Se utiliza para probar la condición de salida de un bucle. Debe devolver un valor booleano. También es un bucle de control de entrada ya que la condición se verifica antes de la ejecución de las declaraciones del bucle.
  • Ejecución de declaraciones : Una vez que la condición se evalúa como verdadera, se ejecutan las declaraciones en el cuerpo del bucle.
  • Incremento/ Disminución : Se utiliza para actualizar la variable para la siguiente iteración.
  • Terminación de bucle :Cuando la condición se vuelve falsa, el bucle termina marcando el final de su ciclo de vida.

Nota : Existe otra forma del bucle for conocida como Bucle for mejorado o (para cada bucle).

Bucle for mejorado (para cada uno)

Este bucle se utiliza para iterar sobre matrices o colecciones.

Ejemplo : El siguiente programa Java demuestra un bucle for mejorado (para cada bucle) para iterar a través de una matriz e imprimir nombres.

Java
   // Java program to demonstrate    // the working of for each loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      String  []     names     =     {     'Sweta'       'Gudly'       'Amiya'     };      for     (  String     name     :     names  )     {      System  .  out  .  println  (  'Name: '     +     name  );      }      }   }   

Producción
Name: Sweta Name: Gudly Name: Amiya  

Sintaxis:

para (variable tipodatos: arrayOrCollection) {

// código a ejecutar

}

2. mientras bucle

Se utiliza un bucle while cuando queremos verificar la condición antes de ejecutar el cuerpo del bucle.

Ejemplo: El siguiente programa Java demuestra un bucle while que imprime números del 0 al 10 en una sola línea.

Java
   // Java program to demonstrates    // the working of while loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      int     i     =     0  ;      while     (  i      <=     10  )     {      System  .  out  .  print  (  i     +     ' '  );      i  ++  ;      }      }   }   

Producción
0 1 2 3 4 5 6 7 8 9 10  

Sintaxis:

mientras (condición) {

// código a ejecutar

}

La siguiente imagen muestra el diagrama de flujo de un bucle while:

bucle hacer mientrasDiagrama de flujo del bucle while
  • El bucle while comienza con la verificación de la condición booleana. Si se evaluó como verdadero, entonces se ejecutan las declaraciones del cuerpo del bucle; de ​​lo contrario, se ejecuta la primera declaración que sigue al bucle. Por esta razón también se le llama bucle de control de entrada.
  • Una vez que la condición se evalúa como verdadera, se ejecutan las declaraciones 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 termina, lo que marca el final de su ciclo de vida.

3. bucle hacer-mientras

El bucle do- while garantiza que el bloque de código se ejecute al menos una vez antes de comprobar el estado.

Ejemplo : El siguiente programa Java demuestra un bucle do- while que imprime números del 0 al 10 en una sola línea.

Java
   // Java program to demonstrates    // the working of do-while loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      int     i     =     0  ;      do     {      System  .  out  .  print  (  i     +     ' '  );      i  ++  ;      }     while     (  i      <=     10  );      }   }   

Producción
0 1 2 3 4 5 6 7 8 9 10  

Sintaxis:

hacer {

// código a ejecutar

} mientras (condición);

La siguiente imagen muestra el diagrama de flujo de un bucle do- while:

Diagrama de flujo del bucle do- while
  • El bucle do while comienza con la ejecución de la declaración. La primera vez no se comprueba ninguna condición.
  • Después de la ejecución de las declaraciones y la actualización del valor de la variable, se verifica la condición para determinar si tiene un valor verdadero o falso. Si se evalúa como verdadero, se inicia la siguiente iteración del bucle.
  • Cuando la condición se vuelve falsa, el ciclo termina, lo que marca el final de su ciclo de vida.
  • Es importante tener en cuenta que el ciclo do- while ejecutará sus declaraciones al menos una vez antes de verificar cualquier condición y, por lo tanto, es un ejemplo de ciclo de control de salida.

Errores comunes en los bucles y cómo evitarlos

Si los bucles no se utilizan correctamente, pueden introducir dificultades y errores que afectan la legibilidad y la funcionalidad del rendimiento del código. A continuación se muestran algunos errores comunes de los bucles:

1. Bucles infinitos

Este es uno de los errores más comunes al implementar cualquier tipo de bucle: es posible que nunca salga, es decir, el bucle se ejecuta durante un tiempo infinito. Esto sucede cuando la condición falla por algún motivo.

Tipos de bucles infinitos:

  • infinito para bucle
  • bucle while infinito

Ejemplo: Aquí ambos ejemplos demuestran los bucles infinitos.

Infinite For Loop
   // Java program to demonstrate    // the infinite for loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <     5  ;     i  --  )     {      System  .  out  .  println  (      'This loop will run forever'  );      }      }   }   
Infinite While Loop
   // Java Program to demonstrate    // the infinite while loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      while  (  true  )      {      System  .  out  .  println  (      'Basic example of infinte loop'  );      }      }   }   

Producción: Cuando ejecute los dos códigos anteriores, obtendrá el error TLE (límite de tiempo excedido).

2. Errores uno por uno

Los errores Off-by-One se producen cuando el bucle se ejecuta una vez más o menos de lo deseado. Básicamente sucede cuando la condición del bucle no está configurada correctamente.

Ejemplo : El siguiente programa Java demuestra un error uno por uno en el que el bucle se ejecuta 6 veces y esperábamos que se ejecutara 5 veces.

Java
   // Java Program to demonstrates Off-by-One Errors   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <=     5  ;     i  ++  )     {      System  .  out  .  print  (  i     +     ' '  );      }      }   }   

3. Modificación de variables de bucle dentro del bucle

Cuando cambiamos la condición del bucle (como i) dentro del bucle, puede hacer que el bucle se salte ciertas iteraciones o se comporte de maneras que no esperábamos. Esto podría provocar errores o comportamientos inesperados.

Ejemplo : El siguiente programa Java demuestra la modificación de la variable de bucle dentro del bucle, lo que hace que el bucle se salte ciertas iteraciones y se comporte de forma inesperada.

Java
   // Java program demonstrates    // modification in i variable   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <     5  ;     i  ++  )     {      if     (  i     ==     2  )     {          // Modifies the loop variable and skips      // the next iteration      i  ++  ;      }      System  .  out  .  println  (  i  );      }      }   }   

4. Cuerpo de bucle vacío

Un cuerpo de bucle vacío se produce cuando un bucle se escribe para iterar pero no realiza ninguna operación dentro del bucle. Ejecutar un bucle sin ninguna operación útil en su interior puede resultar confuso.

Ejemplo: El siguiente programa Java demuestra el cuerpo del bucle vacío.

Java
   // Java program to demonstrates Empty loop body   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <     10  ;     i  ++  )     {          // Empty body no operations      }      }   }   

No se generará ningún resultado para esto porque el cuerpo del bucle está vacío.

Tabla resumen

Tipo de bucle

Cuando usar

Comprobación de condición

¿Se ejecuta al menos una vez?

para bucle

Cuando quieres iteraciones exactas

Antes del cuerpo del bucle Se llama Entrada controlada.

No

mientras bucle

Cuando necesite verificar la condición primero.

Antes del cuerpo del bucle Se llama Entrada controlada.

No

bucle hacer-mientras

Cuando necesitas ejecutar al menos una vez

Después del cuerpo del bucle Se llama Salida controlada.

para cada bucle

Cuando procesas todos los artículos de la colección.

Manejado internamente

No

Publicaciones relacionadas:

  • para bucle
  • mientras bucle
  • bucle hacer-mientras
Crear cuestionario