Capítulo 5: Estructuras condicionales

Uso de la orden if

Aunque la orden if puede tener una sintaxis más compleja, comenzaremos por su forma más sencilla. En ese caso, su formato es así:

Scripts-en-PowerShell-Guia-para-principiantes-148

Como habrás imaginado, el significado de sus elemento es este:

  • La palabra condición se refiere a una expresión lógica. Es decir, que al evaluarla se obtendrá un valor $true o $false.

  • Por su parte, el bloque de código será un conjunto de instrucciones que sólo se ejecutarán cuando la condición ofrezca el valor $true. El bloque de código se escribe siempre encerrado en una pareja de llaves.

Veamos un ejemplo:

Scripts-en-PowerShell-Guia-para-principiantes-159

El resultado que obtendríamos sería parecido a este:

Scripts-en-PowerShell-Guia-para-principiantes-160

En el ejemplo anterior, hemos utilizado una variable lógica para evaluar la expresión. Sin embargo, podríamos haber abreviado escribiendo la expresión directamente en la orden if. Así, nos ahorraríamos usar la variable $positivo:

Scripts-en-PowerShell-Guia-para-principiantes-161

… Y el resultado sería similar:

Scripts-en-PowerShell-Guia-para-principiantes-162

De hecho, dentro del paréntesis podemos utilizar cualquier expresión válida que ofrezca un valor lógico. Además, hemos aprovechado para escribir el if de una forma más bonita…

Scripts-en-PowerShell-Guia-para-principiantes-163

… Y el resultado seguiría siendo equivalente:

Scripts-en-PowerShell-Guia-para-principiantes-164

Esto nos ahorraría también la variable $número… Pero quizás sea mejor mantener el código más legible.

En definitiva, todos los ejemplos anteriores son equivalentes. Cuando los ejecutes, si escribes un número positivo, el script te contestará con el texto El número es positivo. Y si escribes un número negativo, no aparecerá nada.

Uso de la orden if con else

Añadiendo else a la orden if, podremos incluir un bloque de código que sólo se ejecute cuando la condición sea falsa. En ese caso, su formato es así:

Scripts-en-PowerShell-Guia-para-principiantes-149

Veamos un ejemplo:

Scripts-en-PowerShell-Guia-para-principiantes-165

El resultado obtenido sería este:

Scripts-en-PowerShell-Guia-para-principiantes-166

Como ves, ahora el script siempre contesta, indicándonos si el número que hemos escrito es positivo o negativo.

Uso de la orden if con elseif

En situaciones donde tenemos más de dos alternativas, podemos incluir elseif para atender todas las posibilidades. En ese caso, su formato es así:

Scripts-en-PowerShell-Guia-para-principiantes-150

En este caso, puedes utilizar tantos elseif como requiera el problema que estés resolviendo.

Veamos un ejemplo: Imagina que necesitas obtener una respuesta del usuario y debes tener en cuenta que éste no escriba ninguna de las respuestas esperadas. Podríamos hacerlo así:

Scripts-en-PowerShell-Guia-para-principiantes-167

El resultado podría ser como este:

Scripts-en-PowerShell-Guia-para-principiantes-168

En realidad, podríamos haber simplificado las condiciones si no diferenciáramos entre minúsculas y mayúsculas:

Scripts-en-PowerShell-Guia-para-principiantes-169

El inconveniente es que, ahora, pueden darse respuestas que no habíamos tenido en cuenta al principio. Por ejemplo, SI ó sI.

Otra opción sería utilizar el método IndexOf que ya conocemos del capítulo anterior:

Scripts-en-PowerShell-Guia-para-principiantes-170

La ventaja de este método es que, si queremos añadir nuevas opciones de respuesta afirmativa o negativa, sólo tenemos que modificar las variables correspondientes, sin complicar la lógica del programa.