Está en la página 1de 5

aprenderaprogramar.

com

InstruccinSegn(Caso)Hacer (SelectCase)(CU00325A)
Seccin:Cursos
Categora:CursoVisualBasicNivelI Fechaltimaactualizacin:2012 Autor:MarioR.Rancel Resumen:Entregan24delCursoVisualBasicNivelI

12

20062012aprenderaprogramar.com

InstruccinSegn(Caso)Hacer(SelectCase)enVisualBasic.

INSTRUCCINSEGN(CASO)HACER(SELECTCASE) LasintaxisaemplearconVisualBasiceslasiguiente:

SelectCase[expresin] Case[valorexpresin1] Instruccin1 Instruccin2 Case[valorexpresin2] Instruccin3 Instruccin4 . . . Case[valorexpresinn] Instruccink CaseElse Instruccinm EndSelect

La expresin a evaluar puede ser un valor numrico o una cadena de texto. Slo se puede evaluar una expresinynomltiplesexpresiones.Laevaluacindeexpresionespuedeser:
a) De coincidencia: por ejemplo, Case 12 indicara que si la expresin evaluada vale 12 se ejecutarn

lasinstruccionesanexas.
b) De intervalo: usando la palabra clave To. Por ejemplo, Case 12 To 14 indicara que si la expresin

evaluada tiene un valor comprendido entre 12 y 14 (incluidos los extremos de los intervalos), se ejecutarnlasinstruccionesanexas.
c) De comparacin: usando la palabra clave Is. Por ejemplo, Case Is <= 14 indicara que si la expresin

evaluadatieneunvalormenoroiguala14seejecutarnlasinstruccionesanexas. Cuando varios casos son vlidos, slo se ejecutan las instrucciones asociadas al primer caso verificado, siguiendo el flujo del programa por la siguiente instruccin despus de End Select. Esto debemos tenerlo muy en cuenta, ya que si pretendemos que cuando se cumplan dos condiciones se ejecuten sendos bloques de instrucciones, convendr hacerlo a travs de la instruccin If en vez de a travs de SelectCase. Las instrucciones Select Case se pueden anidar. Cada instruccin Select Case debe tener su correspondienteterminacinEndSelect. LainstruccinSelectCasepresentasimilitudesmarcadasconlainstruccinIfThen.Porello,engeneral podremos conseguir resultados similares con ambas instrucciones y elegir usar una u otra depender denuestrogustoydeculseadaptemejoranuestrosintereses,queen generalsernahorrarcdigoy conseguirclaridadparacumplirelobjetivo.Otrasvecesserinteresanteanidarambasinstrucciones.
20062012aprenderaprogramar.com

InstruccinSegn(Caso)Hacer(SelectCase)enVisualBasic.

Pruebaelsiguientecdigo: Elresultadoesquesemuestraenpantalla"Avale12".Sinembargo,apesardequelahiptesisA<14se cumple,nollegaaevaluarseyportantolasinstruccionesasociadasaestecasonoseejecutan. EJERCICIO Transformar en cdigo de Visual Basic el siguiente enunciado: crear un programa que pida al usuario unnmerodedayunnmerodemes,evalesilaentradaescorrectayencasodequeasseacalcule eldadelaoquees,considerandounaonobisiesto.
20062012aprenderaprogramar.com Private Sub Form_Load() Show A = 12 Select Case A Case 12 Print "A vale 12" Case Is < 14 Print "A es menor que 14" Case 160 To 200 Print "A est comprendida entre 160 y 200" Case Else Print "No se ha verificado ninguna de las condiciones previstas" End Select End Sub Option Explicit Dim A As Integer

InstruccinSegn(Caso)Hacer(SelectCase)enVisualBasic.

SOLUCIN
Rem [Clculo del da del ao] Option Explicit Dim Nda%, Nmes%, DDA As Integer Private Sub Form_Load() Show Form1.Caption = "Clculo da del ao" Label1(0).Caption = "Introduzca aqu el nmero del da" Label1(1).Caption = "Introduzca aqu el nmero del mes" Command1.Caption = "Determinar da del ao" End Sub Private Sub Command1_Click() Nda = Val(Text1(0)) Nmes = Val(Text1(1)) LabelResultado.FontSize = 10 LabelResultado.FontBold = True If Nda >= 1 And Nda <= 31 And Nmes >= 1 And Nmes <= 12 Then Select Case Nmes Case 1 DDA = Nda '[DDA es da del ao] Case 2 DDA = Nda + 31 Case 3 DDA = Nda + 59 Case 4 DDA = Nda + 90 Case 5 DDA = Nda + 120 Case 6 DDA = Nda + 151 Case 7 DDA = Nda + 181 Case 8 DDA = Nda + 212 Case 9 DDA = Nda + 243 Case 10 DDA = Nda + 273 Case 11 DDA = Nda + 304 Case 12 DDA = Nda + 334 End Select LabelResultado = "El " & Nda & " del " & Nmes & " es el da " & DDA & " del ao" Else LabelResultado = "Datos proporcionados no vlidos" End If End Sub

20062012aprenderaprogramar.com

InstruccinSegn(Caso)Hacer(SelectCase)enVisualBasic.

Aspectogrfico: Prximaentrega:CU00326A Accesoalcursocompletoenaprenderaprogramar.com >Cursos,oenladireccinsiguiente:


http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

20062012aprenderaprogramar.com