En ocasiones necesitamos que una determinada acción se ejecute varias veces en el programa por un determinado número de veces, o mientras una condición ocurra. Repetir el código podría ser una solución, pero sin duda una muy desordenada y poco eficiente. Para este tipo de situaciones se utiliza la Estructura de control repetitiva, también conocida como “Ciclos”. En este artículo te explicaremos los conceptos básicos de los ciclos, así como una de dichas estructuras: Do – While.
Estructura de control repetitiva: Metodología de la programación que consiste en ejecutar una o varias instrucciones en un determinado número de ocasiones o mientras una condición se cumpla. Para que el ciclo termine se debe estar monitoreando y cambiando la variable de control, es decir, la que determina el fin del ciclo, que puede ser un número que indica cuantas veces se ejecuta el ciclo o puede ser una condición que ejecuta el ciclo mientras sea verdadera. Existen 3 tipos de estructuras de control:
Contador: Variable que sirve para contabilizar el número de veces que se ha repetido un ciclo y para detener el ciclo. Esta variable contadora puede ser de incremento o decremento. Esta variable siempre debe inicializarse antes (y fuera) del ciclo. Por ejemplo, si queremos que un ciclo se ejecute 5 veces crearíamos una variable contadora que inicie en 0, y dentro del ciclo incrementaríamos en 1, cuando se haya cumplido 5 veces el ciclo, la variable contadora tendrá un valor de 5, y el programa se detendrá. Las distintas sintaxis para incrementar serían las siguientes:
Código:
Contador = Contador + 1; |
---|
Código:
Contador++; |
---|
Código:
++Contador; |
---|
Código:
Contador += 1; |
---|
Las distintas sintaxis para decrementar serían las siguientes:
Código:
Contador = Contador – 1; |
---|
Código:
Contador--; |
---|
Código:
--Contador; |
---|
Código:
Contador -= 1; |
---|
Acumulador: Tiene una función parecida al contador, sin embargo, en este caso el número que se acumulará es variable. Por ejemplo, si queremos crear un ciclo en el que se multiplique cierto número hasta que el resultado de la multiplicación sea 200, utilizaríamos un acumulador que este guardando el resultado, y que detendrá el ciclo una vez el resultado sea 200.
Centinela: Variable que el usuario puede modificar de manera que pondrá fin a un ciclo. Se monitorea dicha variable en cada vuelta de ciclo, y si la variable coincide con la condición para finalizar el ciclo este terminará. Por ejemplo, se puede crear una variable centinela que si el usuario escribe “Si” continúe el ciclo, y si escribe “No” se finalice el ciclo.
Bandera (Marca, Flag): Variable cuyos valores pueden cambiar entre 1 (verdadero) y 0 (falso). Este puede detener un ciclo, se utiliza normalmente para cambiar si cierta condición se cumple. Por ejemplo, supongamos que queremos detener un ciclo si un sensor detecta algo, entonces podríamos crear una variable llamada “Detecto_sensor” cuyo valor inicial sea 0, cuando detecte algo cambie a 1, y poner como condición detener el ciclo cuando la variable valga 1.
Estructura Do-While: Estructura que repetirá un ciclo un número indefinido de veces mientras una condición sea verdadera. Esta estructura se utiliza cuando queremos que el ciclo se realice al menos una vez, después de eso se revisará si la condición es verdadera, si sí es este se repetirá, si no es verdadera terminará el ciclo.
Características:
Código:
do{ //Repite estas instrucciones... Instrucción; Instrucción; Instrucción; } while (condicion); //… mientras la condición sea verdadera |
---|
Realizar un programa en el que (en un ciclo) el usuario pueda ingresar 2 números a multiplicar, una vez ingresados se realice la multiplicación y muestre los resultados; después pregunte al usuario si desea realizar otra multiplicación, si la respuesta es sí, se repite el ciclo y vuelve a realizar todo lo anterior, si es no finalice el ciclo.
Código:
/* Ciclos (Do While) - Por Solución Ingenieril*/ /* Programa que realizara multiplicaciones hasta que el usuario decida terminar */ #include <stdio.h> /* Declaración de librerías*/ #include <stdlib.h> int multiplicar(int, int); //Función que multiplicara int main() { int num_1,num_2; //Declaramos variables, esta guardara los números a multiplicar int resultado; //Este guardara el resultado char salida; //Este guardara la respuesta de salida, si desea salir o no do{ //Haz esta accion... printf("Ingresa el primero numero a multiplicar: "); //Solicitamos datos a multiplicar y guardamos scanf("%d",&num_1); printf("Ingresa el segundo numero a multiplicar: "); scanf("%d",&num_2); resultado=multiplicar(num_1,num_2); //Llamamos a la función de multiplicar y guardamos el resultado printf("%d x %d = %d",num_1,num_2,resultado); //Mostramos el resultado printf("\nDeseas realizar otra multiplicacion?: S/N "); //Preguntamos si desea realizar otra multiplicación, y guardamos su respuesta scanf("%s",&salida); printf("----------------------\n"); }while(salida=='s'); //Mientras la respuesta sea "S" (de Si), regresa al Do y ejecuta la acción... printf("Gracias por utilizar este multiplicador!"); //Cuando ya escriba N (de No), agradecemos y salimos... return 0; } int multiplicar(int numero_1,int numero_2){ //Función que realizara la multiplicación int result; //Declaramos variable donde se guardara el resultado result = numero_1 * numero_2; //Realizamos multiplicación return result; //Enviamos el resultado } |
---|
Multiplicamos todas las veces que deseamos hasta que ponemos N (No) en el programa.
En ocasiones queremos que una parte de un programa se repita en muchas ocasiones sin tener que reescribir el código, para este tipo de situaciones existe los ciclos y hoy analizamos una estructura de estos llamada “Do While”, explicamos todo sobre las condiciones que modifican al ciclo, sus características y finalizamos con un ejercicio para que quede claro como codificarlo.