Bucle controlado por centinela
Un ciclo controlado por centinela también se denomina ciclo de repetición indefinida porque no se conoce el número de iteraciones antes de que el ciclo comience a ejecutarse. En un bucle controlado por centinela, se utiliza un valor especial llamado valor centinela para cambiar la expresión de control del bucle de verdadero a falso para determinar si se ejecuta el cuerpo del bucle. El ciclo controlado por Sentinel es útil cuando no sabemos de antemano cuántas veces se ejecutará el ciclo. Un ejemplo de bucle controlado por centinela es el procesamiento de datos de un archivo de texto de tamaño desconocido. A continuación se muestra el programa para ilustrar el bucle controlado por centinela en C :
C
// The following program does the work // of finding a length of a string using // sentinel controlled loop #include <stdio.h> // Function to find the // length of the string void lengthOfString(char* string) { int count = 0, i = 0; char temp; // Pointer to string temp = string[0]; // Iterate till temp points to NULL while (temp != '\0') { count++; i++; temp = string[i]; } // Print the length of the string printf("The length of string is %d", count); } // Driver Code int main() { // Given String char string[] = "GeeksForGeeks"; // Function Call lengthOfString(string); return 0; }
The length of string is 13
Bucle controlado por contador
Un ciclo controlado por contador también se conoce como ciclo de repetición definida, ya que se conoce el número de iteraciones antes de que el ciclo comience a ejecutarse. El bucle controlado por contador tiene los siguientes componentes:
- una variable de control.
- el valor de incremento (o decremento) por el cual se modifica la variable de control en cada iteración del bucle.
- la condición de terminación del bucle que comprueba si el bucle debe continuar.
Dado que el bucle controlado por contador está controlado por un valor de contador, en cada iteración el valor del contador aumentará o disminuirá con un valor definido y se verificará la condición, por lo que el número de ejecución del bucle se vuelve definitivo. Cualquier tarea que involucre una iteración definida se puede resolver utilizando un bucle controlado por contador, por ejemplo, imprimiendo los primeros 10 números naturales.
C
// Program to print first K // natural numbers #include <stdio.h> // Function to print the Natural Number void printNaturalNumbers(int K) { int i = 1; while (i <= K) { // Print the number i printf("%d ", i); i++; } return; } // Driver Code int main() { // Given Number N int N = 5; // Function Call printNaturalNumbers(N); return 0; }
1 2 3 4 5
La principal diferencia entre Sentinel y el bucle controlado por contador en C es que en un bucle controlado por Sentinel, no se sabe exactamente cuántas veces se ejecutará el cuerpo del bucle y en un bucle controlado por contador, se sabe cuántas veces se ejecutará el cuerpo del bucle.
La diferencia entre Sentinel y el bucle controlado por contador en C se indica a continuación:
S. NO. | BASE DE COMPARACIÓN | BUCLE CONTROLADO POR SENTINEL | BUCLE CONTRACONTROLADO |
---|---|---|---|
1. | Definición | Un ciclo controlado por centinela es el ciclo de repetición indefinida, ya que no se conoce el número de repeticiones antes de que el ciclo comience a ejecutarse. | Un ciclo controlado por contador es el ciclo de repetición definitivo, ya que se conoce el número de repeticiones antes de que el ciclo comience a ejecutarse. |
2. | variable de control | La variable controlada utilizada se conoce como variable centinela. | La variable controlada utilizada se conoce como contador. |
3. | Número de iteración | Número desconocido de iteraciones | Número conocido de iteraciones. |
4. | valor de la variable | El valor de la variable no es estricto y varía. | El valor de la variable es estricto. |
5. | Limitación de variable | La Limitación de la variable es estricta. | La Limitación de la variable también es estricta. |
6. | Ejemplo | Un bucle do….while es un ejemplo de bucle controlado por centinela. | Un bucle while es un ejemplo de bucle controlado por contador. |
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA