Hola a todos, hoy os voy a explicar como funcionan las estructuras condicionales. Las estructuras condicionales nos permiten ejecutar una serie de instrucciones si cumple una determinada condición que nosotros le indiquemos. Es importante recordar que la condición debe dar un resultado booleano, por lo que lo mas normal es usar operadores relacionales y condicionales. Tenemos varios tipos de estructuras condicionales:
- if: le indicamos una condición si esta es verdadera se ejecuta, sino no se ejecuta las instrucciones de dentro. Se suele traducir como «Si se cumple esta condición haz esto». Su sintaxis es:
if condicion then 'Instrucciones end if
Por ejemplo:
Module Module1 Sub Main() Dim precio As Integer = 300 If precio > 100 Then Console.WriteLine("El precio es mayor que 100") End If Console.ReadLine () End Sub End Module
Donde colocamos la condición, podemos colocar una variable booleana, ya que su valor puede ser true o false.
- if – else: es como el anterior solo que después de cerrarse la llave de if, se añade else sin indicarle ninguna condición. Esto sirve para que si la condición del if no es verdadera, ejecute otras instrucciones que estarán dentro de else. Se suele traducir como «Si se cumple esta condición haz esto y sino haz esto».
Veamos un ejemplo:
Module Module1 Sub Main() Dim precio As Integer = 50 If precio > 100 Then Console.WriteLine("El precio es mayor que 100") Else Console.WriteLine("El precio es menor que 100") End If End Sub End Module
En este caso, se ejecutara lo que hay en else ya que no cumple la condición.
- if -elseif: esta estructura es como una mezcla de los anteriores, esto nos permite, que si no se cumple la condición podamos indicar otra condición para hacerlo aún mas especifico. Se suele traducir como «Si se cumple esta condición haz esto y sino si cumple esta condición haz esto».
Veamos un ejemplo:
Module Module1 Sub Main() Dim precio As Integer = 50 If precio > 100 Then Console.WriteLine("El precio es mayor que 100") ElseIf precio > 80 Then Console.WriteLine("El precio es mayor que 80") Else Console.WriteLine("El precio es menor que 80") End If End Sub End Module
El ejemplo anterior es equivalente al siguiente, esto es lo que se conoce como if anidados, podemos anidar tantos como queramos:
Module Module1 Sub Main() Dim precio As Integer = 50 If precio > 100 Then Console.WriteLine("El precio es mayor que 100") Else If precio > 80 Then Console.WriteLine("El precio es mayor que 80") Else Console.WriteLine("El precio es menor que 80") End If End If End Sub End Module
- Select: esta estructura condicional de selección múltiple, le damos un valor (puede ser una variable) y una lista de casos y si cumple alguno de los casos ejecuta las instrucciones asociadas a ella, en caso de que ninguna sea podemos indicarle que hace por defecto, normalmente se usa para indicar de un error con un mensaje. Su sintaxis es:
Select valor Case caso1 'Instrucciones Case caso2 'Instrucciones Case casoN 'Instrucciones Case Else 'Instrucciones End Select
Los case de un select se pueden escribir con rangos con To, por ejemplo, 1 TO 5, también podemos usar comas para indicar varios valores. Por ejemplo:
Module Module1 Sub Main() Dim valor As Integer = 3 Select Case valor Case 1 To 5 Console.WriteLine("El valor esta entre 1 y 5") Console.WriteLine("El valor esta es 6 o 8 o 9") Case Else Console.WriteLine("El valor es otro") End Select Console.ReadLine() End Sub End Module
Espero que os sea de ayuda. Si tenéis dudas, preguntad, estamos para ayudar.
Muchas gracias por la ayuda, me ha servido de mucho para hacer un código que calcule el Argumento de cualquier número complejo.!
gracias por compartir tu conocimiento =D
Hola! Soy de colombia y estoy intentando hacer una nomina pero al ponerle condicionales para agregar el UVT la retefuente me vota 0
EL CODIGO ES
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
‘BASICO’
Dim SMLV As Double : SMLV = 877803
Dim Sueldo As Double
Sueldo = Val(txtSueldoBasico.Text)
Dim Basico As Double
Dim dias As Double
dias = Val(txtDiasTotales.Text)
txtSueldoBasico.Text = Sueldo
Basico = (Sueldo / 30) * dias
txtBasico.Text = Basico
‘TablavalorEXTRAS’
Dim ValorHD, ValorHN, ValorED, ValorEN, ValorEDD, ValorEDN, ValorRN As Double
ValorHD = (Basico / dias) / 8 : txtValorHD.Text = ValorHD
ValorHN = ValorHD * 1.35 : txtValorHN.Text = ValorHN
ValorED = ValorHD * 1.25 : txtValorED.Text = ValorED
ValorEN = ValorHD * 1.75 : txtValorEN.Text = ValorEN
ValorEDD = ValorHD * 2 : txtValorEDD.Text = ValorEDD
ValorEDN = ValorHD * 2.5 : txtValorEDN.Text = ValorEDN
ValorRN = ValorHD * 1.35 : txtValorRN.Text = ValorRN
‘Para tomar Valor de extras hechas’
Dim DiurnaHecha, NocturnaHecha, DomiDiurnaHecha, DomiNocturnaHecha, RecargoNocturno As Int16
DiurnaHecha = Val(txtDiurnaHecha.Text) : NocturnaHecha = Val(txtNocturnaHecha.Text)
DomiDiurnaHecha = Val(txtDomiDiurnaHecha.Text) : DomiNocturnaHecha = Val(txtDomiNocturnaHecha.Text) : RecargoNocturno = Val(txtRecargoNocturnoHecho.Text)
‘Para calcular el total de extras’
Dim TDH, TNH, TDDH, TDNH, TRN As Double
TDH = DiurnaHecha * ValorED : txtHED.Text = TDH
TNH = NocturnaHecha * ValorEN : txtHEN.Text = TNH
TDDH = DomiDiurnaHecha * ValorEDD : txtHEDD.Text = TDDH
TDNH = DomiNocturnaHecha * ValorEDN : txtHEDN.Text = TDNH
TRN = RecargoNocturno * ValorRN : txtHRN.Text = TRN
Dim TotalExtras As Double
TotalExtras = TDH + TNH + TDDH + TDNH + TRN : txtTotalExtras.Text = TotalExtras
‘PARA DEVENGAR’
Dim Auxilio, TotalDevengado As Double
If Sueldo > 2 * SMLV Then
Auxilio = 0
ElseIf Auxilio = ((97032 / 30) * dias) Then
End If
txtAuxilio.Text = Auxilio
TotalDevengado = TotalExtras + Basico + Auxilio : txtDevengado.Text = TotalDevengado
‘PARA DEDUCIR’
Dim IBC, SALUD, PENSION, FONDO, RETEFUENTE As Double : IBC = (TotalDevengado – Auxilio)
SALUD = IBC * 0.04
PENSION = IBC * 0.04
txtSaludPension.Text = (SALUD + PENSION)
If TotalDevengado > (4 * SMLV) Then
FONDO = TotalDevengado * 0.01
ElseIf FONDO = 0 Then
End If
txtFondo.Text = FONDO
‘PROBADO HASTA ACA’
Dim UVT, BaseGrabable As Double
UVT = 35.607
BaseGrabable = ((TotalDevengado – (FONDO + SALUD + PENSION)) * 0.75) / UVT
‘Condicionales uvt’
Select Case BaseGrabable
Case BaseGrabable (87 * UVT)) AndAlso (BaseGrabable (145 * UVT)))
RETEFUENTE = ((BaseGrabable * 0.28) + 110000) * UVT
txtRetefuente.Text = RETEFUENTE : txtRetefuente.Text = RETEFUENTE
Case (((BaseGrabable > (335 * UVT)) AndAlso (BaseGrabable (640 * UVT)) AndAlso (BaseGrabable (945 * UVT)) AndAlso (BaseGrabable (2300 * UVT))
RETEFUENTE = ((BaseGrabable * 0.39) + 773000) * UVT : txtRetefuente.Text = RETEFUENTE
End Select
Module Module1
Sub Main()
Dim precio As Integer = 50
If precio > 100 Then
Console.WriteLine(«El precio es mayor que 100»)
Else
Console.WriteLine(«El precio es menor que 100»)
End If
End Sub
End Module
esto es para ejecutarlo en excel o se puede ejecutar en Visual Studio Code? o en otro ambiente?