Estructura CASE

  • Por
Vemos la sentencia CASE en VBScript, con ejemplos sobre su funcionamiento.
Con la estructura de control CASE podemos evaluar una variable y realizar acciones dependiendo del valor de esta. La diferencia con el IF consiste en que el número de posibilidades de la evaluación de esta variable no tiene por que ser si o no, pudiendo hacer cosas para un número indeterminado de valores.

La sintaxis es la siguiente:
SELECT CASE (variable)
    CASE (valor1):
                   (acción para caso valor1)
    CASE (valor3):
                   (acción para caso valor2)
    CASE (valor3):
                   (acción para caso valor3)
    CASE ELSE:
                   (accion en caso de que no se cumpla ningun anterior caso)
END SELECT


Funciona asi, primero se evalua la variable, si esa variable tiene como valor el valor1 realizamos las acciones asociadas al valor1. Si tiene el valor2, ejecutamos las acciones relacionadas con este valor3. Así con cuantos valores deseemos. Por último tenemos un ELSE para realizar acciones en caso de que no hubiesen sido ninguno de los valores anteriores. Este ELSE es opcional.

Veamos con un ejemplo esta sentencia muy sencillito. Lo primero que hace es solicitar un número y luego informa del día de la semana con el que corresponde. Si el número no es del uno al siete informa de ello también.

dim dia
dia = inputbox ("dime un dia de la semana")
SELECT CASE dia
CASE 1:
   msgbox("El dia es LUNES")
CASE 2:
   msgbox("El dia es MARTES")
CASE 3:
   msgbox("El dia es MIERCOLES")
CASE 4:
   msgbox("El dia es JUEVES")
CASE 5:
   msgbox("El dia es VIERNES")
CASE 6:
   msgbox("El dia es SABADO")
CASE 7:
   msgbox("El dia es DOMINGO")
CASE ELSE:
   msgbox("Tiene que ser un dia de la semana en número, del 1 al 7")
END SELECT


Este script se puede ver en funcionamiento.

Autor

Miguel Angel Álvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Carlos Osorio

28/9/2003
Hola,

Me parece util este articulo para principiantes de VB.

solo un cometario sencillo por ahora.

En el ejemplo de la estructura del CASE, en lugar de pedir "dime un dia de la semana", podría cambiarse la sentencia mejor por "Dime un dia de la semana en numeros del 1 al 7"

David

23/2/2009
Pues q creen no pude acerlo como dando el numero d la semana si alguien pudo x fa expliquenme como...
Gracias

Justins

02/3/2009
Pero mira que eres justito chaval. Y que más da el día de la semana que pongas...

Jorge Rodriguez

03/3/2009
Hola,

Una pregunta porque al momento de declarar la variable dia no tiene de que tipo es, acaso de interpretar que por default es una variable de tipo VARIANT.

hernanferna

26/11/2009
Case con 2 variables
Me parece útil, este agregado a la estructura Case, que puede resultar de utilidad

dim g, h
g=3
h=2
select case g
case 3 and h=3
msgbox"1"
case 3 and h=2
msgbox"2"
end select

'funciona y selecciona la segunda opción

Gracias por las colaboraciones y comentarios brindados.

JoaoM

19/8/2010
Form VBA en Excel
Amigos tengo un form y le agregue dos comboBox y un button.
Quiero hacer que ese button active y desactive los comboBox alternativamente, clico y activa Combo1, desactiva Combo2.
Vuelvo a clicar, desactiva Combo1 y activa Combo2 y así sucesivamente.

De programacion casi no entiendo, sol oseque se hace con Case Select (algo así)
Podrian ayudarme y darme el codigo para ese Private Sub CommadButton_Click()

Les sabre agradecer

Wilson

13/12/2010
Ayuda con Select Case
necesito la ayuda de la comunidad con este problema
es una de la Policia de transito que debe realizar lo siguiente:
si el infractor se retraso de 1 a 29 dias debe pagar 0 mora,
si el infractor se retraso de 30 a 59 dias debe pagar el 10% de mora
si el infractor se retraso de 61 a 89 dias debe pagar el 25% de mora
si el infractor se retraso de 90 a 119 dias debe pagar el 50% de mora
y si el infractor se retraso de 120 dias o mas debe pagar el 100% de mora

Yo lo hice de esta forma y funciona perfecto..... pero lo que yo necesito es de que haga lo mismo pero con SELECT CASE... en lugar de el IF...ELSE IF...

If Val(Text5) >= 30 And Val(Text5) < 60 Then
Label7 = Val(Text4) * 10 / 100
ElseIf Val(Text5) >= 60 And Val(Text5) < 90 Then
Label7 = Val(Text4) * 25 / 100
ElseIf Val(Text5) = 90 And Val(Text5) < 120 Then
Label7 = Val(Text4) * 50 / 100
ElseIf Val(Text5) >= 120 Then
MsgBox "El infractor tiene una multa del 100% de la infraccion", vbInformation, "WOW!!!"
Label7 = Val(Text4) * 100 / 100
End If

paola

13/6/2011
muy pero muy
m parece una cosa rara no entiendo nada d nada :P

Luis

29/6/2011
soy un novato uso del case
Buenas tardes estoy recibiendo clase de pagina web, pero tengo que hacer una tares del uso del case en forma de dialogo,
me gustario saber donde se pone el case en la pagina html, y como se usa xfa.
de antemano gracias

SOFO ARRIOLA

26/3/2014
Soy una crack y la melcho no
A mi me funciono primero que a la melcho, gracias a la tephie que me dio este maravilloso sitio

Ceci Guinea

26/3/2014
Este sitio es muy bueno.
A mis amiguis les encantó este sitio, les parecio muy bueno y me lo recomendaron;).