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:
Diagrama 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).
java int para duplicar
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:
10 de 10
Diagrama 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.
la cadena contieneInfinite 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. que coleccion en java | No |
bucle hacer-mientras | Cuando necesitas ejecutar al menos una vez | Después del cuerpo del bucle Se llama Salida controlada. | Sí |
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