En programación, a veces es necesario realizar alguna operación más de una vez o (digamos) n número de veces. Los bucles se utilizan cuando necesitamos ejecutar repetidamente un bloque de instrucciones.
Por ejemplo : supongamos que queremos imprimir «Hello World» 10 veces. Esto se puede hacer de dos maneras como se muestra a continuación:
Método manual (general) (Método iterativo)
Manualmente, tenemos que escribir print() para C y cout para la declaración de C++ 10 veces. Digamos que tienes que escribirlo 20 veces (seguramente tomaría más tiempo escribir 20 declaraciones) ahora imagina que tienes que escribirlo 100 veces, sería muy agitado volver a escribir la misma declaración una y otra vez. Entonces, aquí los bucles tienen su papel.
C
// C program to illustrate need of loops #include <stdio.h> int main() { printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); printf( "Hello World\n"); return 0; }
C++
// C++ program to illustrate need of loops #include <iostream> using namespace std; int main() { cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; cout << "Hello World\n"; return 0; }
Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World
Uso de bucles
En Loop, la declaración debe escribirse solo una vez y el bucle se ejecutará 10 veces como se muestra a continuación. En programación informática, un bucle es una secuencia de instrucciones que se repite hasta que se alcanza una determinada condición.
- Se realiza una operación, como obtener un elemento de datos y cambiarlo, y luego se verifica alguna condición, como si un contador ha alcanzado un número prescrito.
- Contador no alcanzado: si el contador no ha alcanzado el número deseado, la siguiente instrucción de la secuencia vuelve a la primera instrucción de la secuencia y la repite.
- Contador alcanzado: si se ha alcanzado la condición, la siguiente instrucción «falla» a la siguiente instrucción secuencial o se bifurca fuera del bucle.
Existen principalmente dos tipos de bucles:
- Bucles controlados de entrada : en este tipo de bucle, la condición de prueba se prueba antes de ingresar al cuerpo del bucle. For Loop y While Loop son bucles controlados por entrada.
- Bucles controlados de salida : en este tipo de bucle, la condición de prueba se prueba o evalúa al final del cuerpo del bucle. Por lo tanto, el cuerpo del bucle se ejecutará al menos una vez, independientemente de si la condición de prueba es verdadera o falsa. el ciclo do- while es un ciclo controlado por salida.
S. No. | Tipo de bucle y descripción |
---|---|
1. | while loop – Primero verifica la condición, luego ejecuta el cuerpo. |
2. | for loop : primero inicializa, luego, verifica la condición, ejecuta el cuerpo, actualiza. |
3. | do-while : en primer lugar, ejecutar el cuerpo y luego la verificación de condición |
en bucle
Un bucle for es una estructura de control de repetición que nos permite escribir un bucle que se ejecuta un número específico de veces. El bucle nos permite realizar n número de pasos juntos en una línea.
Sintaxis:
for (initialization expr; test expr; update expr) { // body of the loop // statements we want to execute }
Ejemplo:
for(int i = 0; i < n; i++){ }
En for loop, se utiliza una variable de bucle para controlar el bucle. Primero, inicialice esta variable de bucle en algún valor, luego verifique si esta variable es menor o mayor que el valor del contador. Si la declaración es verdadera, entonces se ejecuta el cuerpo del bucle y se actualiza la variable del bucle. Los pasos se repiten hasta que llega la condición de salida.
- Expresión de inicialización : en esta expresión, tenemos que inicializar el contador de bucle a algún valor. por ejemplo: int i=1;
- Expresión de prueba : en esta expresión, tenemos que probar la condición. Si la condición se evalúa como verdadera, ejecutaremos el cuerpo del ciclo e iremos a actualizar la expresión; de lo contrario, saldremos del ciclo for a. Por ejemplo: i <= 10;
- Actualizar expresión : después de ejecutar el cuerpo del ciclo, esta expresión incrementa/disminuye la variable del ciclo en algún valor. por ejemplo: i++;
Diagrama de flujo equivalente para lazo:
Ejemplo:
C
// C program to illustrate for loop #include <stdio.h> int main() { int i=0; for (i = 1; i <= 10; i++) { printf( "Hello World\n"); } return 0; }
C++
// C++ program to illustrate for loop #include <iostream> using namespace std; int main() { for (int i = 1; i <= 10; i++) { cout << "Hello World\n"; } return 0; }
Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World
Mientras bucle
Al estudiar for loop , hemos visto que el número de iteraciones se conoce de antemano , es decir, conocemos el número de veces que se necesita ejecutar el cuerpo del bucle. Los bucles while se utilizan en situaciones en las que no sabemos de antemano el número exacto de iteraciones del bucle . La ejecución del bucle se termina sobre la base de las condiciones de prueba.
Sintaxis : ya hemos dicho que un bucle consta principalmente de tres declaraciones: expresión de inicialización, expresión de prueba y expresión de actualización. La sintaxis de los tres bucles: For, while y do while difiere principalmente en la ubicación de estas tres declaraciones.
initialization expression; while (test_expression) { // statements update_expression; }
Diagrama de flujo :
Ejemplo:
C
// C program to illustrate while loop #include <stdio.h> int main() { // initialization expression int i = 1; // test expression while (i < 6) { printf( "Hello World\n"); // update expression i++; } return 0; }
C++
// C++ program to illustrate while loop #include <iostream> using namespace std; int main() { // initialization expression int i = 1; // test expression while (i < 6) { cout << "Hello World\n"; // update expression i++; } return 0; }
Hello World Hello World Hello World Hello World Hello World
bucle do-while
En los bucles do-while también se termina la ejecución del bucle en función de las condiciones de prueba. La principal diferencia entre un ciclo do-while y el ciclo while es que en el ciclo do-while la condición se prueba al final del cuerpo del ciclo, es decir, el ciclo do-while está controlado por la salida mientras que los otros dos ciclos son controlados por la entrada.
Nota : en un bucle do-while, el cuerpo del bucle se ejecutará al menos una vez independientemente de la condición de prueba.
Sintaxis :
initialization expression; do { // statements update_expression; } while (test_expression);
Nota : observe el punto y coma («;») al final del bucle.
Diagrama de flujo :
Ejemplo:
C
// C program to illustrate do-while loop #include <stdio.h> int main() { int i = 2; // Initialization expression do { // loop body printf( "Hello World\n"); // update expression i++; } while (i < 1); // test expression return 0; }
C++
// C++ program to illustrate do-while loop #include <iostream> using namespace std; int main() { int i = 2; // Initialization expression do { // loop body cout << "Hello World\n"; // update expression i++; } while (i < 1); // test expression return 0; }
Hello World
En el programa anterior, la condición de prueba (i<1) se evalúa como falsa. Pero aun así, como el bucle es una salida controlada, el cuerpo del bucle se ejecutará una vez.
¿Qué pasa con un bucle infinito?
Un bucle infinito (a veces llamado bucle sin fin) es una pieza de codificación que carece de una salida funcional, por lo que se repite indefinidamente. Un ciclo infinito ocurre cuando una condición siempre se evalúa como verdadera. Por lo general, esto es un error.
Usando el bucle For:
C
// C program to demonstrate infinite loops // using for and while // Uncomment the sections to see the output #include <stdio.h> int main () { int i; // This is an infinite for loop as the condition // expression is blank for ( ; ; ) { printf("This loop will run forever.\n"); } // This is an infinite for loop as the condition // given in while loop will keep repeating infinitely /* while (i != 0) { i-- ; printf( "This loop will run forever.\n"); } */ // This is an infinite for loop as the condition // given in while loop is "true" /* while (true) { printf( "This loop will run forever.\n"); } */ }
C++
// C++ program to demonstrate infinite loops // using for and while // Uncomment the sections to see the output #include <iostream> using namespace std; int main () { int i; // This is an infinite for loop as the condition // expression is blank for ( ; ; ) { cout << "This loop will run forever.\n"; } // This is an infinite for loop as the condition // given in while loop will keep repeating infinitely /* while (i != 0) { i-- ; cout << "This loop will run forever.\n"; } */ // This is an infinite for loop as the condition // given in while loop is "true" /* while (true) { cout << "This loop will run forever.\n"; } */ }
Producción:
This loop will run forever. This loop will run forever. ...................
Usando el ciclo while:
C
#include <stdio.h> int main() { while (1) printf("This loop will run forever.\n"); return 0; }
C++
#include <iostream> using namespace std; int main() { while (1) cout << "This loop will run forever.\n"; return 0; }
Producción:
This loop will run forever. This loop will run forever. ...................
Usando el ciclo Do-While:
C
#include <stdio.h> int main() { do{ printf("This loop will run forever.\n"); } while(1); return 0; }
C++
#include <iostream> using namespace std; int main() { do{ cout << "This loop will run forever.\n"; } while(1); return 0; }
Producción:
This loop will run forever. This loop will run forever. ...................
Técnicas de bucle más avanzadas
Puntos importantes:
- Utilice el ciclo for cuando se conoce un número de iteraciones de antemano, es decir, se conoce el número de veces que se necesita ejecutar el cuerpo del ciclo.
- Use bucles while, donde no se conoce un número exacto de iteraciones pero se conoce la condición de terminación del bucle.
- Use do while loop si el código debe ejecutarse al menos una vez como en los programas controlados por menús
Artículos relacionados:
- ¿Qué sucede si se repite hasta el máximo de firmado y sin firmar en C/C++?
- Cuestionario sobre bucles
Este artículo es una contribución de Harsh Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA