Capítulo 6: Estructuras repetitivas

Publicado por P. Ruiz en

La estructura while

Como en el caso anterior, la estructura while nos permite repetir un bloque de código mientras la condición que lo controla siga devolviendo el valor $true. Su formato es como sigue:

PowerShell-UD06-006

A diferencia de la estructura anterior, en este caso la condición se evalúa antes del bloque. Esto significa que, si la primera vez la condición ofrece el valor $false, el bloque no se llegará a ejecutar.

Como ejemplo, veamos cómo resolver la situación anterior utilizando la estructura repetitiva while:

PowerShell-UD06-007

Y, como vemos, el resultado es equivalente:

PowerShell-UD06-008

Actividades resueltas: Trata de resolver las siguientes cuestiones, utilizando las estructuras repetitivas while y do…while, antes de consultar la respuesta:

    1. Escribe un script que pida un número. A continuación, pedirá un segundo número, si éste no es mayor que el primero, volverá a pedirlo. Así, hasta conseguir que lo sea. Al final, mostrará en pantalla ambos números.

      Para resolverlo con do…while podríamos escribir algo como esto:

      PowerShell-UD06-030

      Si nuestra intención es hacerlo con while el resultado podría ser así:

      PowerShell-UD06-031

    2. Escribe un script que pida una serie de números al usuario. El proceso seguirá mientras cada número sea mayor que el anterior.

      Al final, el programa nos dirá cuántos números hemos introducido.

      Para resolverlo con do…while podríamos escribir algo como esto:

      PowerShell-UD06-032

      Si nuestra intención es hacerlo con while el resultado podría ser así:

      PowerShell-UD06-033

    3. Escribe un script que muestre al usuario el siguiente texto:

      ¿Continuar? (s/n)

      El usuario deberá contestar escribiendo una letra. Si ésta es una S o una N (sin importar que sean mayúsculas o minúsculas), el programa nos dirá lo que hemos escrito y terminará. Si escribimos cualquier otra cosa, nos dirá que nos hemos equivocado y repetirá la pregunta.

      Para resolverlo con do…while podríamos escribir algo como esto:

      PowerShell-UD06-034

      Si nuestra intención es hacerlo con while el resultado podría ser así:

      PowerShell-UD06-035

    4. Escribe un script que nos solicite las notas de varios exámenes consecutivos. Después de cada nota nos preguntará si queremos continuar (debes reutilizar el código del ejercicio anterior).

      Si contestamos con una S pedirá otra nota. Si contestamos N mostrará el número de notas que hemos introducido y la nota media..

      En este caso, la solución que aportamos utiliza tanto while como do…while, según la estructura que se ha considerado más adecuada en cada caso:

      PowerShell-UD06-036