martes, 4 de julio de 2023

OOo Basic. Estructuras

Bifurcación múltiple: Select Case

Junto con If, pero pensado en condicionales sucesivos múltiples, la estructura Select Case completa el conjunto de instrucciones que nos permiten tomar decisiones en función de condiciones previas.




La instrucción Select Case está pensada para cuando se deben comprobar sucesiva y excluyentemente el cumplimiento (o no) de una serie de condiciones, dependiendo de ello lo que deberá suceder a continuación, que estará en función de cual de esas condiciones se cumpla.

Mauricio Baeza, nuestro autor de cabecera para OOo Basic, pone como ejemplo la asignación de un valor textual acorde con un valor numérico, en concreto, los días de la semana. Otro ejemplo similar podrían ser los meses del año, pero para no hacer más larga esta ejemplificación sigamos al maestro.

Sub DiaDeLaSemana
Dim Dia As Integer
Dia = InputBox( "¿Que día es hoy (1 a 7)?" )
 
Select Case Dia
Case 1
MsgBox "Hoy es lunes"
Case 2
MsgBox "Hoy es martes"
Case 3
MsgBox "Hoy es miércoles"
Case 4
MsgBox "Hoy es jueves"
Case 5
MsgBox "Hoy es viernes"
Case 6
MsgBox "Hoy es sábado"
Case 7
MsgBox "Hoy es domingo" 
 Case Else
MsgBox "Creo que debes repasar los días de la semana"
End Select 

 End Sub

Select presenta también la posibilidad de tratar opciones como un único bloque, bien separando posibles condiciones mediante comas, bien agrupándolas mediante la palabra reservada To. Veamos sendos ejemplos basados en el anterior:

  • Si queremos valorar dos opciones, por ejemplo, los días que corresponden con el fin de semana:

Select Case Dia
Case 6, 7
MsgBox "Por fin a descansar"
End select

  • Si queremos valorar un intervalo de opciones, por ejemplo de 1 a 5, días laborables: 

Select Case Dia
Case 1 To 5
MsgBox "Que horror, hoy toca trabajar"
End Select

En ambos casos nos ahorraremos explicitar la respuesta compartida por varias condiciones, lo que hace que esta instrucción sea muy flexible y nos evita utilizar formulaciones complejas basadas en operadores lógicos, cosa que deberíamos hacer en caso de utilizar el condicional If.

No hay comentarios:

Publicar un comentario

Comenta esta entrada