Bitácora del desarrollo de mi clase de Visual Basic, en el que ´publicaré el material de la clase y recibiré comentarios y sugerencias de mis alumnos.

Sunday, August 02, 2009

4.2.2. Sentencia Select Case

Select Case

Visual Basic proporciona la estructura Select Case como alternativa a If...Then...Else para ejecutar selectivamente un bloque de sentencias entre varios bloques. La sentencia Select Case ofrece posibilidades similares a la instrucción If...Then...Else, pero hace que el código sea más legible cuando hay varias opciones.

La estructura Select Case funciona con una única expresión de prueba que se evalúa una vez solamente, al principio de la estructura. Visual Basic compara el resultado de esta expresión con los valores de cada Case de la estructura. Si hay una coincidencia, ejecuta el bloque de sentencias asociado a ese Case:

Selec Case expresión_prueba

[Case lista_expresiones1

[bloque de sentencias 1]]

[Case lista_expresiones2

[bloque de sentencias 2]]

.

.

.

[Case Else

[bloque de sentencias n]]

End Select

Cada lista_expresiones es una lista de uno a más valores. Si hay más de un valor en una lista, se separan los valores con comas. Cada bloque de sentencias contiene cero o más instrucciones. Si más de un Case coincide con la expresión de prueba, sólo se ejecutará el bloque de instrucciones asociado con la primera coincidencia. Visual Basic ejecuta las instrucciones de la cláusula (opcional) Case Else si ningún valor de la lista de expresiones coincide con la expresión de prueba.

Por ejemplo, suponga que agrega otro comando al menú Edición en el ejemplo If...Then...Else. Podría agregar otra cláusula ElseIf o podría escribir la función con Select Case:

Private Sub mnuCut_Click (Index As Integer)

Select Case Index

Case 0 ‘ Comando Cortar

CopyActiveControl ‘ Llama a procedimientos generales

ClearActiveControl

Case 1 ‘ Comando copiar.

CopyActiveControl

Case 2 ‘ Comando borrar.

ClearActiveControl

Case 3 ‘ Comando Pegar.

PasteActiveControl

Case Else

frmFind.Show ‘ Muestra el cuadro de

‘ diálogo Buscar.

End Select

End Sub

Select Case TipoUsuario

Case “Supervisor”

‘ Proporciona al usuario privilegios de Supervisor

...

...

Case “Usuario”

‘ Proporciona al usuario privilegios de Usuario

...

...

Case Else

‘ Proporciona al usuario privilegio de invitado

...

...

End Select

Observe que la estructura Select Case evalúa una expresión cada vez que al principio de la estructura. Por el contrario, la estructura If...Then...Else puede evaluar una expresión diferente en cada sentencia ElseIf. Sólo puede sustituir una esructura If...Then...Else con una estructura Select Case si la intrucción If y cada instrucción ElseIf evalúa la misma expresión.

Otros Ejemplos:

If Ventas > 100000 Then

strDscto = Format (0.10, “Fixed”)

ElseIf Ventas > 50000 Then

strDscto = Format (0.05, “Fixed”)

Else

strDscto = Format (0.02, “Fixed”)

End If

Select Case Cantidad

Case 1

sngDscto = 0.0

Case 2, 3

sngDscto = 0.05

Case 4 To 6

sngDscto = 0.10

Case Else

sngDscto = 0.20

End Select


intRpta = MsgBox (“Guarda cambios antes de salir” , vbYesNo)

Select Case intRpta

Case vbYes

GuardarCambios

Unload Me

Case vbNo

Unload Me

End Select

0 Comments:

Post a Comment

<< Home