You are on page 1of 4

Ejecutar instrucciones en funcin de una o

varias condiciones (Visual Basic)


Puede utilizar Instruccin If...Then...Else (Visual Basic) para ejecutar una instruccin
especfica o un bloque de instrucciones dependiendo del valor Boolean (Tipo de datos,
Visual Basic) de una condicin. Generalmente, la condicin es el resultado de comparar
dos valores, pero tambin puede ser cualquier expresin que da como resultado un valor
Boolean (True o False). Esto incluye los valores de otros tipos de datos, como los
numricos, que han sido convertidos a valores de tipo Boolean.

Para ejecutar una o ms instrucciones si una condicin es verdadera

Si tiene slo una instruccin para ejecutar, utilice la sintaxis de lnea nica de la
construccin If...Then...Else. No necesita las instrucciones Else o End If Debido a
que Object es la clase base de todos los tipos de referencia en .NET Framework,
este comportamiento es heredado por los tipos de referencia que no reemplazan el
mtodo ToString.
Sub fixDate()
Dim myDate As Date = #2/13/1973#
If myDate < Now Then myDate = Now
End Sub

-o-

Para ejecutar ms de una lnea de cdigo cuando la condicin es True, se utiliza la


sintaxis de varias lneas, que incluye la instruccin End If. Si no tiene ningn
cdigo para ejecutar cuando la condicin es False, omita la instruccin Else. Debido
a que Object es la clase base de todos los tipos de referencia en .NET Framework,
este comportamiento es heredado por los tipos de referencia que no reemplazan el
mtodo ToString.
Dim alertLabel As New System.Windows.Forms.Label
Sub alertUser(ByVal value As Long)
If value = 0 Then
alertLabel.ForeColor = System.Drawing.Color.Red
alertLabel.Font = New Font(alertLabel.Font,
FontStyle.Bold Or FontStyle.Italic)
End If
End Sub

Para ejecutar algunas instrucciones si una condicin es verdadera y otras si


es falsa

Utilice una construccin If...Then...Else con la instruccin Else (Instruccin, Visual


Basic) para definir dos bloques de instrucciones. Visual Basic ejecuta un bloque si
la condicin es True y el otro bloque si la condicin es False. Debido a que Object
es la clase base de todos los tipos de referencia en .NET Framework, este
comportamiento es heredado por los tipos de referencia que no reemplazan el
mtodo ToString.
Dim alertLabel As New System.Windows.Forms.Label
Sub alertUser(ByVal value As Long)
If value = 0 Then
alertLabel.ForeColor = System.Drawing.Color.Red
alertLabel.Font = New Font(alertLabel.Font,
FontStyle.Bold Or FontStyle.Italic)
Else
alertLabel.Forecolor = System.Drawing.Color.Black
alertLabel.Font = New Font(alertLabel.Font,
FontStyle.Regular)
End If
End Sub

Para probar las condiciones adicionales si la primera condicin es falsa

Utilice la construccin If...Then...Else con una o ms instrucciones ElseIf para


probar las condiciones adicionales si la primera condicin es False. En el siguiente
ejemplo, el procedimiento Function calcula una bonificacin en la nmina
basndose en el nivel de rendimiento. El bloque de instrucciones que sigue a la
instruccin Else slo se ejecuta si las condiciones de las instrucciones If y ElseIf son
todas False.
Function bonus(ByVal performance As Integer,
ByVal salary As Decimal) As Decimal
If performance = 1 Then
Return salary * 0.1
ElseIf performance = 2 Then
Return salary * 0.09
ElseIf performance = 3 Then
Return salary * 0.07
Else
Return 0
End If
End Function

Visual Basic prueba las condiciones en el orden en que aparecen en las


instrucciones If...Then...Else. Si encuentra una condicin True o una instruccin
Else, ejecuta el bloque de instrucciones correspondiente. Despus, el control pasa a
la instruccin que sigue a la instruccin End If.

Puede existir un nmero arbitrario de instrucciones ElseIf o ninguna. Puede incluir


u omitir una instruccin Else independientemente de que existan otras instrucciones
ElseIf.
PROBLEMA PROPUESTO
Este programa pretende calcular diferentes tipos de descuentos
aplicados a una venta dependiendo del valor de esta, si el valor de
la venta es mayor que $500 se aplica el 30 % de descuento sobre la
venta, si es mayor que $300 y menor o igual que $499 el descuento
sera de el 20%, si la venta es mayor que $100 y meno o igual que
$299 el descuento sera de el 10% pero si la venta es menor o igual
que $100 no se aplica ningun descuento. A la vez muestra el valor
del descuento en porcentaje, el descuento aplicado a la venta y la
venta final con su descuento
Public Class Form1
'Si te fijas en no declaro ningun tipo de variable, las cantidades contenidas
'en los textbox son operadas usando Val()
'Est boton se encarga de hacer todo el trabajo, determina el porcentaje a
descontar
'dependiendo de la cantidad ingresada de la Venta.

Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCalcular.Click
'Si la compra es meno o igua que 100 no se hara descuento sobre la compra
If txtVenta.Text <= 100 Then
txtPorDesc.Text = 0 'aca se imprime el valor del descuento en
porcentaje.

'Si la compra es menor o igual que 299 y mayor que 100, el descuento
sera de 10 %
ElseIf txtVenta.Text <= 299 And txtVenta.Text > 100 Then
txtPorDesc.Text = 0.1

'Si la compra es menor o igual que 499 y mayor que 300, el descuento
sera de 20 %
ElseIf txtVenta.Text <= 499 And txtVenta.Text > 300 Then
txtPorDesc.Text = 0.2

'Y si la compra es mayor o igual que 500 se hace un descuento de 30%


sobre la venta
ElseIf txtVenta.Text >= 500 Then
txtPorDesc.Text = 0.3
End If

'Imprimir El descuento
txtDescuento.Text = Val(txtVenta.Text) * Val(txtPorDesc.Text)

'Imprimir La venta fina. Restando de la venta su respectivo descuento


TxtVentaF.Text = Val(txtVenta.Text) - Val(txtDescuento.Text)
End Sub

Private Sub btnLimpiar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnLimpiar.Click
'En este boton se limpian todos los textbox
txtVenta.Text = ""
txtDescuento.Text = ""
txtPorDesc.Text = ""
TxtVentaF.Text = ""
txtVenta.Focus()

End Sub

Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSalir.Click
'Cerrar aplicacin
Me.Close()
End Sub
End Class

You might also like