Curso de C++

Aprende C++ de una buena vez

gratis
texto

Ciclo while en C++. Estructura y sintaxis. Cómo y para qúe usar un ciclo while en C++

Los ciclos while son también una estructura cíclica, que nos permite ejecutar una o varias líneas de código de manera repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se va a dar el valor final que esperamos, los ciclos while, no dependen directamente de valores numéricos, sino de valores booleanos, es decir su ejecución depende del valor de verdad de una condición dada, verdadera o falso, nada más. De este modo los ciclos while, son mucho más efectivos para condiciones indeterminadas, que no conocemos cuando se van a dar a diferencia de los ciclos for, con los cuales se debe tener claro un principio, un final y un tamaño de paso.

¿Cómo funciona un Ciclo While?

Para comprender mejor el funcionamiento del ciclo while, pongamos un buen ejemplo, imaginemos que por algún motivo, queremos pedirle a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100. Como vemos, aquí no podríamos utilizar un ciclo for, pues no tenemos ni idea de cuándo al usuario se le va a ocurrir ingresar un número mayor que 100, es algo indeterminado para nosotros, sin embargo el ciclo while nos permite ejecutar una acción de forma infinita hasta que se cumpla alguna condición especifica, en nuestro caso sería que el numero ingresado sea mayor a 100. De modo que si el usuario nos ingresa de manera sucesiva los siguientes numero 1,50,99, 49, 21, 30, 100 ..., nuestro programa no finalizara, pues ninguno de estos números es mayor que 100, sin embargo si nos ingresara el numero 300, el programa finalizaría inmediatamente.

Vamos a ver ahora como es la sintaxis de un ciclo while en C++, así estaremos listos para usarlos en nuestros programas de ahora en adelante cada vez que lo necesitemos

Sintaxis del Ciclo While en C++:

La sintaxis de un ciclo while es incluso más simple y "legible" que la del ciclo for en C++, pues simplemente requerimos tener clara una condición de parada. En realidad, en la mayoría de los lenguajes de alto nivel la manera de escribir un ciclo while (la sintaxis) es incluso muy similar, así que con tan solo tener bien clara una condición de finalización para el ciclo tendremos prácticamente todo hecho.

while(condición de finalización) //por ejemplo numero == 100 { .... .... Bloque de Instrucciones.... .... .... }

Vamos entonces a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos el ejemplo planteado anteriormente y su solución.

Línea 1:

En esta línea está prácticamente todo lo esencial de un ciclo while. La sintaxis es bastante simple. Tenemos al interior de los paréntesis una condición cualquiera, es decir por ejemplo "==. >, <, >=, <=, !=" o algunas mas que se nos puedan ocurrir, esta condición que especifiquemos allí, es la que permitirá que el ciclo se siga ejecutando hasta que en algún momento esta misma condición deje de cumplirse, de esta forma si por ejemplo estamos verificando que un numero_cualquiera == 50, el ciclo se ejecutara solo cuando numero_cualquiera sea igual a 50, en cuanto su valor cambie a cualquier otro el ciclo while finalizara y continuara con el resto de la ejecución del programa. De esta forma, es evidente que la condición que allí ingresemos siempre deberá tomar un valor booleano (true o false).

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como sabemos indica que allí comienza un bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro". Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutara dentro de nuestro ciclo while la primera línea inmediatamente posterior a la declaración del ciclo, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más ciclos, así que podrías tener todo un programa dentro de un ciclo.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya debemos saber esta nos indica que allí termina el bloque del ciclo while y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.

No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que con un par de ejemplos que veremos a continuación, te va a quedar todo claro

Ejemplos de Ciclo While en C++

A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada el uso de los ciclos while en c++, recuerda que si no comprendes alguno de estos ejemplos o tienes alguna pregunta o sugerencia sobre estos o cualquier contenido de la sección, puedes dejarlas en la sección de comentarios

Ejemplo 1: Pedir números por pantalla hasta que alguno sea mayor a 100

Vamos a retomar el ejemplo anterior, donde queremos hacer que nuestro programa le pida a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100, una vez mas es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien todos los conceptos anteriores:

Solución Ejemplo 1:

Para solucionar esto, debemos tener clara cuál va a ser la condición que se debe cumplir para que el ciclo este pidiendo el numero contantemente, el ciclo se va a detener solo cuando el numero ingresado sea mayor que 100, así que la condición para que se siga ejecutando es que el numero sea menor a 100, ¿Comprender la lógica?, es simple si para que se detenga el numero debe ser mayor a 100, entonces para seguirse ejecutando el numero debe ser menor o igual a 100, veámoslo entonces

int numero; cin >> numero; while(numero <= 100) { cout << "Ingrese un numero "; cin >> numero; }

El código funcional completo y un tanto más amigable para el usuario sería el siguiente:

#include "iostream" using namespace std; int main() { int numero; cout << "Ingrese un numero "; cin >> numero; while(numero <= 100) { cout << "Ingrese un numero "; cin >> numero; } system("PAUSE"); return 0; }

Nota: Si no comprendes alguna de las líneas de estos códigos, te recomiendo visitar los contenidos anteriores (Entrada y Salida de Datos, Librerías ó Comentarios, Estructura de un Programa) o también puedes dejar un comentario al final de la sección con tu pregunta.

En efecto los ciclos while, son bastante útiles, sin embargo desde el punto de vista de la eficiencia al igual que con los ciclos for, es recomendable evitarlos en la medida de lo posible, siempre que vayas a usar un ciclo while o cualquier tipo de ciclo en realidad, deberías preguntarte primero si es totalmente necesario o si existe una manera más efectiva de hacerlo. Evidentemente habrá situaciones en las que será casi que imprescindible usar el ciclo, pues por algo existen, esta entonces en nuestra habilidad determinar cuándo usarlos y mejor aun como usarlos de manera efectiva.

Muy bien de momento, es todo en esta sección, podemos entonces continuar ahora con el siguiente contenido que son los ciclos Do-While, recuerda también dejar tus comentarios y/o preguntas en la sección de comentarios.

La última actualización de este artículo fue hace 3 meses

Imagen descriptiva de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

Lo que dicen los estudiantes

Demoramos mucho para llegar al desarrollo. Aunque la maquina virtual es necesaria son muchos videos. De ahí en fuera está muy bien

Benjamin Ortiz

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Buena didáctica y redacción, espero más contenidos en los siguientes capítulos.

Juan Razo Ruiz

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Genial el ambiente que genera la pagina. Simple, rápido, fácil y al alcance de cualquiera.¡Sigan así cracks!

Fran Garassi

Visitante del sitio ProgramarYa.com

Muy buena presentación pedagógica, pues nos quita el miedo a la programación. Yo entiendo que ésta tiene como objetivo facilitar el manejo de procesos que serían, demasiado complejos.

Jairo Ibarbo

Visitante del sitio ProgramarYa.com

Wuau, entendí más en una hora leyendo esto que en todo el semestre con la maestra de informática.

Valeria Sybelle

Visitante del sitio ProgramarYa.com

Muy bien explicado. Contenido muy actualizado.

Santiago Zuluaga

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Muchas gracias me has ayudado a quitar mis dudas de qué es For While, if y switch. Esto me ayudara también a mi tarea.

Len Garcia

Visitante del sitio ProgramarYa.com

Estoy muy contento por haber terminado este curso. Estoy aplicando lo aprendido a mis proyectos y quedo totalmente satisfecho. Un curso 100% recomendable.

Jesus Romero

Estudiante del curso "VPS Seguro con DigitalOcean, Nginx, Letsencrypt Ubuntu 14.04"

Estuve un semestre sin programar y me siento bastante perdida. Espero que este curso me ayude a ponerme de nuevo al corriente.

Fernanda Sanchez

Visitante del sitio ProgramarYa.com

¡De lo mejor! Saludos desde México, está super bien todo, claro y preciso. Lo mejor es que se usen ejemplos. ¡Mejor que algunos profesores que me han tocado!

Rodrigo Enciso

Visitante de PrograarYa.com

El curso es bueno, pero siempre explica demasiado rápido

E-Contact

Estudiante del curso " Aprende Laravel: Crea un Gestor de Fotos con Laravel y PHP"

Muy detallado y claras las explicaciones. Muchas gracias!

Sr. Erick Evencio

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Habiendo visto el 100% del curso puedo decir que es muy bueno de acuerdo a lo propuesto, cumple con las expectativas.

Holmans Correa

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Hice muchos ejercicios y aquí logré comprender lo que realmente estaba haciendo. Llegó un momento en que dejó de gustarme la programación, pero con estos textos, recuperé la motivación. Buen trabajo.

Demetrio Cumplido

Visitante del sitio ProgramarYa.com

Buenas explicaciones y temario interesante.

Leonardo Quimpos

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Muy buen programador, dominas la POO como en ninguno otro curso, el uso de traits en el proyecto es una delicia.

Sergio Larracoechea

Estudiante del curso "APIs RESTful con Laravel"

¡Listo!

En breve recibirás un mensaje de confirmación. Verifica, por si acaso, la carpeta de correo no deseado.

¡Ups! {{subscriberErrorMessage}}

Si te parece bien, te enviaré, de vez en cuando, mensajes de interés sobre los temas que se tratan en sitio.

Tu dirección de correo electrónico será almacenada con un interés según el artículo en el que te encontrabas.

Además, puedes eliminar tu suscripción en cualquier momento.