Está en la página 1de 7

:.Ciclos en C.

Los Ciclos, también llamados Bucles, son unas sentencias de control -que nos permiten manipular
el flujo del programas- utilizadas para la ejecución repetitiva de instrucciones; para ello se valen de
una “Condición de parada” y, de acuerdo a nuestras necesidades, podemos utilizar una u otra,
muchas veces, en instrucciones sencillas, no importa demasiado, pero en programas más amplios
es necesario escogerlas con cuidado.

Ciclo While

Como su traducción literal lo indica, la utilizamos para repetir acciones “mientras” la condición que
le indiquemos sea verdadera -que nos de un ‘1’ por la operación lógica-, si la condición se cumple,
se entra al ciclo, y este se repetirá mientras la condición sea verdadera, si durante el ciclo -por
operaciones y demás- la condición deja de ser verdadera o se encuentra con un “break;” -como el
del switch-, se sale del ciclo y el código que sigue fuera de él se ejecutará normalmente, su sintaxis
es:

while(condición){Sentencias;}

Cabe mencionar que los corchetes son opcionales, si no se usan, significa que el while abarca “una
línea”, esto es, únicamente busca “sentencia;”, no importando si está al lado, abajo o veinte líneas
en blanco abajo en nuestro código porque el complador borá todo eso y lo que le importa es que
el fin de línea que significa una sentencia se dé con “;”, por eso es tan imporante. Los corchetes
nos permiten hacer “un bloque” de código, un “ámbito“, por eso TODO lo de main va entre
corchetes y cuando hagamos funciones, también los usaremos.
Click en la Imagen para Ampliar

Click en la Imagen para Ampliar

Analizemos, mientras que i sea igual a 0 se ejecuta la siguiente línea, o sea, el print en la línea 6, la
línea 7 es también para el compilador otra sentencia, escribirlo así es para que nosotros lo leamos
mejor, por eso ya no se ejecuta, el programa no necesita getch porque jamás se va a detener,
como a i no le estamos haciendo nada, siempre va a valer 0, y la expresión “i==0” siempre nos
dará un true -1-, es equivalente a escribir:
while(1){Sentencias;}//while(true) lo leo yo por comodidad, pero TRUE -mayúsculas- es una
constante “definida” en stdio, me parece, también el while(1) se puede cambiar por while(TRUE)
Do-While

El primo de While, o su prima libertina -XD-. Al igual que while, requiere una condición, pero
permite entrar al ámbito del ciclo aún si no se ha complido dicha condición. Primero entra, ejecuta
todo el código en el ámbito del do-while, después checa la condición lógica y si es cierta, sigue
ejecutando el código hasta que ésta sea falsa y por ende se detenga. Veamos:

Click en la Imagen para Ampliar

Nos entrega:

Click en la Imagen para Ampliar


Ahí se ve lo que ocurre con el do-while, primero entra, imprime, aumenta 10 al valor de i, después
verifica la condición y decide si se ejecuta de nuevo o no. Al principio, i vale 10, se imprime, se
aumenta y cuando checa la condición, ve que i<100 es cierta y lo hace de nuevo, ¿por qué solo
imprime del 10 al 90? Porque primero se imprime y luego se hace el aumento, entonces, i va
cambiando así:

Ciclo|valor de i al acabar
1|20
2|30
3|40
4|50
5|60
6|70
7|80
8|90
9|100

Ya se llegó a que i valga 100, pero eso se imprimiría en la siguiente instrucción, i ya lo vale, sale del
ciclo y, como corroboramos, su valor es de 100. Ahora, ejecutamos las mismas instrucciones -pff
se ahorra tiempo con funciones-, exáctamente las mismas, se imprime 100, se checa la condición
y… momento ¿por qué se imprimió si el ciclo anterior había dicho que ya no podía ejecutarse el
código y decidió parar? Porque, al contrario del While, el do-while permite que se entre al menos
una vez al bloque de código y después verifica si se ha de ejecutar una siguiente vez. Usar while y
do-while es una desición que se debe tomar con cuidado.

Ciclo For

El favorito de muchos, este ciclo es tremendamente utilizado para lo que tiene que ver
con Arreglos, especialmente matrices, pues anidarlo -usar uno dentro de otro, como vimos con los
ifs- es más sencillo de entender que anidar whiles o do-whiles para ese tipo de acciones. Lo que
hace el for es tener una variable “contadora” que es la que nos indica la condición de parada,
también se pueden ocupar 2 -no sé si más-, pero eso lo veremos luego con ejemplos. Su sintaxis
es:

for(contador;condición(es);acciones al finalizar el ciclo){Sentencias}

Las condiciones al finalizar el ciclo suelen ser incrementos o decrementos. Muchos se preguntan el
por qué se coloca casi de cajón una variable llamada ‘i’ como contador, en toda la web y hasta en
mis ejemplos, ocupamos mucho la i para ciclos, no lo sé a ciencia cierta, pero creo que tiene que
ver con que cada ciclo es también llamado “iteración”, y se toma su inicial, recordemos que C es
un lenguaje imperativo, que se basa en la utilización de sentencias de control de flujo y ciclos
iterativos -entre otras cosas- para resolver sus problemas.
En algunos lenguajes es posible declarar nuestro contador dentro del ciclo:
for(int i = 0;i<100,i+=10) //Ejemplo que no se puede en C
Nosotros debemos declarar en el mismo ámbito la variable que deseamos usar como contador y
ya que estemos dentro del ciclo, darle un valor inicial:
int i = 0;

for(i=0;i<100;i++) //Esto sí se puede hacer

Vamos con un ejemplo, escribiremos los números del 1 al 10 con un ciclo for:

Click en la Imagen para Ampliar

Nos entrega:
Click en la Imagen para Ampliar

Siempre hay muchas formas de hacer lo mismo, unas más eficientes que otras, algunas más
cómodas, otras más sencillas de leer, es un ejemplo de cómo podemos explotar nuestra
imaginación, tal vez pongo mucho de mi idiosincracia en cómo estoy haciendo el tutorial, casi
siempre hago los códigos como yo sé hacerlos, siempre con corchetes en los cilclos for aunque
sean de una línea y cosas así, pero trataré de explorar las diferentes formas que sé de ahora en
adelante.

Muy común es lo que vimos cuando usé j, necesitamos decir “Iteración [1]: ” y cosas así, ocupamos
un entero, pero bien puede ser que si i es nuestro contador, en lugar de ir ‘de 0 a 9’ o algo así, que
vaya de 100 a 40, no sé, que en lugar de decirle en la condición i<número le digamos i<variable,
muchas cosas podemos hacer con ello, luego mostraré como incluír a j dentro de las instrucciones
del diclo para ahorrarnos unas líneas y que el código sea más bonito y cómodo; así como funciona
el for para una línea puede funcionar el while, para que quien lo desee, practique. También, se
pueden poner más de una condición, con && y ||, los and y or lógicos que ya hemos visto antes,
esto es especialmente útil para métodos numéricos, por ejemplo, y otro tipo de problemas que
requieren este tipo de condiciones:
while(temperatura<maxima&&capacidad>almacenado){
sentencias;sentencias;sentencias;}

También podría gustarte