Programación en C++: 7 Ciclos y Banderas


En este artículo hablaremos de los cielos do…ahíle y while, los cuales se pueden implementar a través de variables de bandera, para cuando no sabemos el número exacto de iteraciones que realizará el ciclo.

 

 Una bandera es una variable a la cual hacemos cambiar entre dos posibles valores ya sea para alternar la ejecución de dos bloques de código o para producir la salida de un ciclo por la acción de que la variable tenga o no uno de sus valores, para hacer más claro esto, lo veremos a través de un ciclo do…while, el cual tiene la sintaxis

Do{

Bloque de código

}while(condición)

La sentencia do con la llave marca el inicio del bloque que se ejecutará dentro del ciclo y el while marca el final, la evaluación de la condición que hará que el ciclo continúe o salga se hace al llegar a la línea de while, por lo que el bloque de código se ejecutará al menos una vez, pero veamos cómo se implementa en el siguiente ejemplo

 Como podemos ver en la línea 8, le asignamos a la variable «i» un valor, para que esta variable sea nuestra bandera, en la línea 9 inicia nuestro ciclo con el do y termina en la línea 14 con el while, el cual verifica que la variable no tome el valor de ‘n’, pero para que el ciclo funcione de forma adecuada debemos ver que en la línea 13, antes del while, pedimos el valor de la variable i, a través de un scanf, esto para que el usuario decida si se hará una nueva iteración, ya que si no incluimos esto dentro del ciclo, el ciclo podría hacerse infinito o solo ejecutarse una vez.

 

Aprovecharemos este código, para mostrar un detalle que se presenta en C++, con el uso de variables de tipo char, para ello veamos cómo es la ejecución del código anterior

 

 

 Como podemos ver, el ciclo se repite sin pedir el valor de «i» de forma alternada, esto ocurre porque en el lenguaje C++ los Enter son un carácter entendible como cualquier otro y se representan como el carácter de fin de cadena «\0». Como la variable char almacena un solo carácter, el Enter que presionamos, queda en la cola del teclado y es tomado y almacenado en la variable char en la siguiente iteración del ciclo, como eso vacía la cola del teclado, en la iteración subsecuente ya pide el valor.

El como solucionar esto, se puede hacer de varias formas, en este caso, tomaremos la más clásica, que es utilizar un getchar para sacar y desechar ese Enter que sobra en la  cola del teclado.

En la imagen anterior, vemos un ejemplo más completo, en donde usamos el ciclo con la bandera de tipo char y vemos que en líneas 14 y 17 hemos incluido instrucciones getchar, la primera es porque al pedir un dato numérico en la línea 11, se queda un Enter en la cola del teclado y en línea 16, al pedir el valor de «i» se produce de nuevo.

Este código lo hemos visto con el ciclo do…while, ahora veremos cómo se hace lo mismo con el ciclo while.

 

 La diferencia principal entre estos dos ciclos, es el lugar donde se verifica la condición, en el ciclo while, la verificación ocurre antes de que se ejecute el bloque de código, por lo que la variable de bandera debe tener un valor que haga que la condición se cumpla y el bloque se ejecute la primera vez.

 

Ya para concluir les dejamos el vídeo de este tema 

 

 

 

 

¿Qué estas pensando?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.