Estructuras condicionales en Visual Basic .NET

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.

Compartir

5 comentarios

  1. Isaac

    Muchas gracias por la ayuda, me ha servido de mucho para hacer un código que calcule el Argumento de cualquier número complejo.!

  2. leonardo

    gracias por compartir tu conocimiento =D

  3. Valentina Herrera Narvaez

    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

  4. trolencio11

    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

  5. andres

    esto es para ejecutarlo en excel o se puede ejecutar en Visual Studio Code? o en otro ambiente?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *