Está en la página 1de 7

Ciclos Repetitivos

Los ciclos o también conocidos como bucles, son una estructura de control esencial
al momento de programar. Tanto C como C++ y la mayoría de los lenguajes utilizados
actualmente, nos permiten hacer uso de estas estructuras. Un ciclo o bucle permite
repetir una o varias instrucciones cuantas veces lo necesitemos, por ejemplo, si
quisiéramos escribir los números del uno al cien no tendría sentido escribir cien líneas
mostrando un número en cada una, para esto y para muchísimas cosas más, es útil
un ciclo, permitiéndonos hacer una misma tarea en una cantidad de líneas muy
pequeña y de forma prácticamente automática.
.

Ciclo For

Un ciclo for es una estructura de iteración que permite ejecutar una instrucción (o serie
de instrucciones) un número determinado de veces.

Su sintaxis es:

for (expresión 1; expresión 2; expresión 3){


secuencia de instrucciones
}
1
2
3
for (expresión 1; expresión 2; expresión 3){
secuencia de instrucciones
}

Cuando el número de iteraciones es conocido

Ejemplo: Escriba un programa que imprima los números del 1 al 30 escribiendo o


colocando un salto de línea cada 7 números.
#include "stdio.h"
int main(){
int x=0;
for (x=1; x<=30; x++){
printf("%d \t",x);
if (x%7==0){
printf ("\n");
}
}
}

Explicación: En el ejemplo anterior el número de iteraciones o vueltas está controlado


por la variable x. Al ser declarada, x vale 0. Sin embargo, cuando comienza el ciclo x
adquiere el valor de 1. El ciclo terminará cuando x valga 30 (x<=30). Además, x recibirá
incrementos de 1 (x++). Dentro del cuerpo de la instrucción for se imprime el valor de x
(printf(“%d \t”, x)). Se evalúa si x es múltiplo de 7 (x%7==0), de ser así se imprime un
salto de línea (printf (“\n”)).

Cuando el número de iteraciones es determinado


por el usuario.

Ejemplo: Escriba un programa que imprime los números del 1 a n, donde n es la cantidad
de días que tiene un mes y que el usuario selecciona previamente

#include "stdio.h"
int main(){
int x, mes, dias=0;
int aa = 2017;
printf ("Que mes desea: ");
scanf("%d", &mes);
if (mes == 1|| mes == 3 || mes == 5 ||
mes == 7 || mes == 8 || mes == 10 ||
mes == 12 ){
dias = 31;
}

for (x=1; x<=dias; x++){


printf("%d\t", x);
if (x % 7 == 0){
printf ("\n");
}
}
}

Explicación: Se pregunta al usuario el mes que desea visualizar. Si el número introducido


corresponde a un mes con 31 días, la variable días recibe el valor 31. (Se deberá incluir
código si desea validar los meses con 30 días y el mes de febrero). Se inicia el ciclo for
usando la variable x con valor inicial de 1. El ciclo terminará cuando la variable x sea igual
al valor de días del mes seleccionado.

Ciclo While

Un ciclo while realiza un conjunto de instrucciones mientras una condición sea cierta (sea
diferente de 0). Cuando la instrucción es 0 (o falso) se suspende la ejecución del ciclo.

Ejemplo: Realizar un programa que muestre un menú de opciones.Se realizará la opción


elegida y se volverá a mostrar el menú. El programa termina cuando el usuario elige la
opción 5 del menú.

#include "stdio.h"
int main(){
int saldo=0, depósito=0, retiro=0, opcion=0;
printf("Introduzca saldo inicial: ");
scanf("%d", &saldo);
while(opcion != 5){
printf("===Bienvenido al banco===");
printf("\n Elija una opción");
printf("\n1. Depositar");
printf("\n2. Retirar");
printf("\n3. Ver saldo");
printf("\n4. Abonar intereses");
printf("\n5. Salir");
printf("Indique la opción que desea utilizar: ");
scanf("%d", &opcion);
if (opcion == 1){
printf("Monto a depositar: ");
scanf("%d", & depósito);
saldo = saldo + deposito;
}
if (opcion == 3){
printf("\nSu saldo es: %d", saldo);
}
if (opcion == 5){
printf("\n Esta opción termina el programa. Gracias por usar este programa");
}
}

Explicación: La variable que controla el ciclo es opcion, la cual inicialmente tiene un valor
de 0. Se utiliza la instrucción while para evaluar si la variable opcion es diferente de 5, el
valor con el que se cierra el programa (while(opcion != 5)). Mientras no sea 5 se muestra
el menú y se ejecutan las opciones. Cuando el usuario escribe 5, el programa realiza la
opción 5, y finaliza.

Ciclo Do-While

La principal diferencia con los otros dos ciclos (for y while) es que el ciclo do-while evalúa
la condición al final del bloque de instrucciones. Esto implica que realizará por lo menos
1 vez el conjunto de instrucciones que forman el cuerpo del ciclo.

Ejemplo: Solicitar una calificación al usuario, si está no está en el intervalo 0 a 10, se


deberá volver a pedir la calificación.

#include "stdio.h"
int main(){
int cal=0;
do{
printf("Deme la calif");
scanf("%d", &cal);
} while (cal < 0 || cal > 10);
printf("\nGracias");
Explicación: El ciclo es controlado por la variable cal. Como se solicita un rango de
valores, se escriben dos condiciones (cal < 0 || cal > 10). Se solicita al usuario una
calificación, por lo menos una vez, si no está en el rango de valores, el ciclo mientras
evalúa a verdadero por lo que volverá a repetirse el conjunto de instrucciones para
solicitar una calificación. Cuando la calificación está en el rango, el ciclo evalúa a falso,
por lo que se saldrá y continuará en la instrucción siguiente.

Ciclos anidados

Dado que una instrucción iterativa puede incluir cualquier tipo de instrucción, un ciclo
puede contener a otro ciclo en su cuerpo de instrucciones.

Ejemplo: Se desea leer las calificaciones de 5 alumnos, por cada alumno se leen 3
calificaciones.

#include "stdio.h"
int main(){
int i,j;
int calif;
int suma1=0, suma2=0;
float promedio1, promedio2;
for (i=1; i<=5; i++){
printf("\nCalificaciones alumno %d\n", i);
for (j=1; j<=3; j++ ){
printf("\tDeme calif %d: ",j);
scanf("%d",&calif);
suma1=suma1+calif;
}
promedio1 = suma1 / 3;
printf("\tEl promedio es %.2f", promedio1);
suma2=suma2+promedio1;
suma1=0;
}
promedio2 = suma2 / 5;
printf("\nEl promedio general es: %.2f",promedio2);
}
Explicación: Se utilizan dos ciclos for, uno dentro del otro. El primer ciclo utiliza la variable
i como contador. La variable i va de 1 a 5 (los alumnos). El segundo ciclo utiliza la variable
j. Esta variable va de 1 a 3 (las calificaciones). Como está dentro el primer ciclo, leerá 3
calificaciones por cada uno de los 5 alumnos. En el ejemplo anterior se utilizan dos
variables suma. La primera lleva la suma de 3 calificaciones, para obtener un promedio.
La segunda lleva la suma de los promedios obtenidos, lo que permite tener un promedio
general de las calificaciones de los alumnos.

Ejemplo: Se desea leer 10 calificaciones aceptando únicamente las calificaciones que


estén en el rango de 0 a 10.

#include "stdio.h"
int main(){
int calif=0;
int erronea=0;
int i;
for (i = 1; i<=10; i++){
do{
printf("\nEscriba una calificacion correcta: ");
scanf("%d", &calif);
if (calif <0 || calif > 10){
erronea=1;
printf("\nLa calificacion es erronea, introduzca de nuevo: ");
}
else{
erronea = 0;
}
} while (erronea != 0);
printf("\nGracias!!");
}
}

Explicación: Se utiliza un for para las 10 calificaciones. Para aceptar únicamente


calificaciones válidas se utiliza un do-while. Si usas un if, tambien realiza la validación,
pero continúa con la siguiente calificación. Un do-while vuelve a pedir (una y otra vez) la
calificación, mientras no se le de una calificación correcta. En este ejemplo se utiliza una
variable centinela llamada errónea, que es inicializada en 0 (no es errónea). Se utiliza un
if para hacer la evaluación de si el número está fuera del rango. Si está fuera del rango
errónea se cambia a 1. Volverá a pedir la calificación mientras errónea tenga ese valor
de 1. La única forma de que errónea vuelva a ser cero es dando una calificación correcta.

También podría gustarte