Hola y bienvenidos.
Vamos a realizar un ejercicio para poner en práctica el ciclo de while en el lenguaje C.
Están listos?
Vamos.
Bien, vamos a dejar aquí la sintaxis del ciclo de While.
Ahora vamos a crear a continuación el siguiente ejercicio.
Voy a quitar de momento todo este código y vamos a poner en práctica el ciclo Dougy.
Ahora vamos a realizar el siguiente ejercicio.
En este ejercicio vamos a validar si el valor proporcionado por el usuario es un número positivo y mientras
el usuario no proporcione un valor positivo, entonces le vamos a pedir que vuelva a ingresar un valor
y entonces cada vez que ingrese un valor vamos a revisar si el valor proporcionado es positivo de no
ser positivo.
De nueva cuenta vamos a pedirle que ingrese un valor positivo y así hasta que el usuario ingrese verdaderamente
un valor positivo.
Ese tipo de código nos va a permitir, por ejemplo, validar valores introducidos por el usuario, y
mientras el usuario no proporcione un valor correcto, entonces vamos a repetir tantas veces esta solicitud
hasta que el usuario proporcione un valor correcto.
Y entonces nuestro programa ahora sí puede continuar con la seguridad de que el valor proporcionado
es el indicado.
Bien, entonces vamos a hacer lo siguiente repetir hasta que sea un valor positivo.
Así que vamos a definir nuestras variables.
De momento, voy a definir la variable de número.
Esta es la variable que va a almacenar el valor que va a proporcionar el usuario.
Bien.
Posteriormente vamos a abrir nuestro ciclo DU.
Abrimos el bloque de código y si damos enter podemos observar que de manera automática, en este caso
el IDE me agregó el de más código.
Sin embargo, si no lo agrega de manera automática, simplemente cerramos este bloque de código con
esta llave y posteriormente recordemos que agregamos nuestra condición utilizando la palabra reservada
while y posteriormente entre paréntesis agregamos la condición que debe de ser un valor lógico y recordemos
que terminamos con punto y coma.
Así que en este caso esta es la sintaxis del ciclo de while.
Bien, ahora una vez que estamos dentro del ciclo, vamos a mandar a imprimir.
En este caso le vamos a pedir al usuario que proporcione un valor.
Así que le pedimos proporcionar un valor positivo o, para más claro todavía, un número positivo.
Posteriormente, utilizando la función Scan F, vamos a asignar el valor proporcionado por el usuario,
que debe de ser un valor de tipo numérico y lo asignamos a la dirección de memoria donde se definió
la variable de número.
Bien, una vez que ya tenemos este valor, entonces vamos a definir nuestra variable de condición.
La condición a evaluar va a ser la siguiente Mientras si el valor proporcionado de número es menor o
igual que cero, entonces quiere decir que no es un valor positivo.
Así que si no es un valor positivo, le volvemos a pedir al usuario que proporcione un valor positivo
y entonces este ciclo se va a repetir tantas veces como este valor, sea cero o negativo, mientras
sea cero o negativo, se vuelve a repetir este ciclo y va a terminar hasta que el usuario proporcione
realmente un valor positivo.
Y una vez que terminamos aquí, termina el ciclo.
Una vez que ya tenemos el número correcto, entonces debería de terminar y mandamos a imprimir.
Agregamos un salto de línea al inicio.
Valor positivo proporcionado.
Ese es el valor que proporcionó el usuario y está almacenado en la variable de número.
Así que en este momento, a partir de esta línea, ya estamos seguros que el valor que proporcionó el
usuario es efectivamente un valor positivo.
Así que este código nos puede servir perfectamente para validar si un número es positivo o no.
Bien, entonces con esto ya tenemos todo nuestro código.
Vamos a ejecutar y podemos ver que nos pide proporciona un valor positivo.
En este caso, voy a proporcionar, por ejemplo, el valor de -1 y podemos observar que se vuelve a
repetir el ciclo debido a que el valor que proporcioné no es positivo.
Si proporciono el valor de cero, me vuelve a pedir un número positivo y así este ciclo se va a repetir
tantas veces como el valor que proporcionemos no sea positivo.
Y si finalmente le proporciona un valor positivo, por ejemplo, el valor de ocho, doy enter y entonces
termina la ejecución de nuestro ciclo.
Podemos ver que nos manda el mensaje de valor positivo, el valor de ocho.
Ahora, ese tipo de estructurado nos puede servir perfectamente para este tipo de situaciones.
Sin embargo, para que todavía quede un poco más claro, voy a hacer algunas mejoras en este código.
Voy a definir al inicio la variable de condición.
Como hemos comentado.
Cada vez que se ejecute este ciclo.
Si definimos de manera interna la variable de condición, se va a estar creando y destruyendo cada vez
que se ejecute este ciclo de while.
Si no queremos esto, podemos definir esta variable fuera del ciclo while.
Así que esta variable de condición la defino fuera del ciclo de while para que solamente se cree una
vez bien y entonces esta variable de condición ya la podemos utilizar.
Y le voy a agregar la siguiente condición En este caso va a cambiar la lógica.
Voy a preguntar si la variable de número es mayor que cero.
Así que voy a revisar si el número proporcionado es mayor que cero.
Esto quiere decir que el valor ya sería positivo y entonces en el ciclo while lo que voy a hacer es
invertir la condición utilizando el operador de not invierto el valor.
Entonces, básicamente como debemos de leer este código es de la siguiente forma Recordemos que la condición
lo que está preguntando es si el valor es positivo.
En este caso estamos preguntando si el número es mayor que cero.
Por lo tanto, preguntamos si es positivo y entonces.
Este ciclo se debe de leer de la siguiente manera Vamos a ejecutar todo este código mientras el número
no sea positivo.
Por ello fue que invertimos esta condición, ya que si no agregamos este operador para invertir la condición,
entonces básicamente estaríamos preguntando que se repita este ciclo mientras el número sea positivo.
Pero no queremos esa validación, sino que queremos que se repita este número, siempre y cuando el
valor no sea positivo.
Por ello es que estamos invirtiendo entonces esta condición.
Así que esta es una forma común de utilizar este ciclo while exactamente lo mismo que hemos estudiado,
pero estamos invirtiendo la lógica de programación.
Bien, vamos a ejecutar y entonces, mientras no proporcionemos un valor positivo, se va a seguir ejecutando
nuestro programa.
Por ejemplo, si proporciono el valor de -1, se vuelve a repetir este ciclo.
Si proporciona el valor de cero, también.
De igual manera no es un valor positivo.
Y por último, si proporciono el valor de diez, entonces ya es un valor positivo y termina la ejecución
de nuestro programa.
Aun así, todavía, si tuvieran alguna duda, pueden ejecutar este programa paso a paso, como ya lo
hemos visto anteriormente.
Bien, pongan en práctica lo que hemos visto y continuamos en la siguiente lección.
Saludos.