FANDOM


Introducción Editar

Un breve ejemplo del funcionamiento del entorno de desarrollo de Visual Basic. Éste es el código necesario para mostrar un mensaje en una aplicación de consola:

Option Explicit On

Module Module1

  Sub Main()

    Console.Write("Pulse Intro para continuar...")
    Console.ReadLine()

  End Sub

End Module

Decisiones Editar

If Then Else Editar

En una sola línea Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If iMes = 1 Then sMensaje = "Es enero."

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

En una sola línea y con alternativa Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If iMes = 1 Then sMensaje = "Es enero." Else sMensaje = "No es enero."

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Resultado similar:

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If Month(Now) = 1 Then Console.WriteLine("Es enero")

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

En varias líneas Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If iMes = 1 Then
      sMensaje = "Es enero."
      Console.WriteLine(sMensaje)
    End If

    Console.ReadLine()

  End Sub

End Module

Versión reducida (ahora sí, idéntica a la anterior):

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If Month(Now) = 1 Then Console.WriteLine("Es enero")
    
    Console.ReadLine()

  End Sub

End Module

En varias líneas y con alternativa Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If iMes = 1 Then
      sMensaje = "Es enero."
      Console.WriteLine(sMensaje)
    Else
      sMensaje = "No es enero."
      Console.WriteLine(sMensaje)
    End If

    Console.ReadLine()

  End Sub

End Module

Con sólo una instrucción Console.WriteLine:

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If iMes = 1 Then
      sMensaje = "Es enero."
    Else
      sMensaje = "No es enero."
    End If

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

En escalera Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    If iMes = 1 Then
      sMensaje = "Es enero."
    ElseIf iMes = 2 Then
      sMensaje = "Es febrero."
    ElseIf iMes = 3 Then
      sMensaje = "Es marzo."
    Else
      sMensaje = "No es ni enero, ni febrero ni marzo."
    End If

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Select Case Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    Select Case iMes
      Case 1
        sMensaje = "Es enero."
      Case 2
        sMensaje = "Es febrero."
      Case 3
        sMensaje = "Es marzo."
      Case Else
        sMensaje = "No es ni enero, ni febrero ni marzo."
    End Select

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Listas, intervalos y comparaciones Editar

Listas de valores:

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    Select Case iMes
      Case 1, 2, 3
        sMensaje = "Primer trimestre."
      Case 4, 5, 6
        sMensaje = "Segundo trimestre."
      Case 7, 8, 9
        sMensaje = "Tercer trimestre."
      Case 10, 11, 12
        sMensaje = "Cuarto trimestre."
    End Select

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Intervalos de valores:

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    Select Case iMes
      Case 1 To 3
        sMensaje = "Primer trimestre."
      Case 4 To 6
        sMensaje = "Segundo trimestre."
      Case 7 To 9
        sMensaje = "Tercer trimestre."
      Case 10 To 12
        sMensaje = "Cuarto trimestre."
    End Select

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Comparaciones:

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    Select Case iMes
      Case Is <= 3
        sMensaje = "Primer trimestre."
      Case Is <= 6
        sMensaje = "Segundo trimestre."
      Case Is <= 9
        sMensaje = "Tercer trimestre."
      Case Is <= 12
        sMensaje = "Cuarto trimestre."
    End Select

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Otras estructuras condicionales Editar

If Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    sMensaje = If(iMes = 1, "Es enero.", "No es enero.")

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

IIf Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMensaje As String
    iMes = Month(Now)

    sMensaje = IIf(iMes = 1, EsEnero(), NoEsEnero())

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Tanto EsEnero() como NoEsEnero() son funciones que habría que crear.

Choose Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer
    Dim sMes As String
    Dim sMensaje As String

    iMes = Month(Now)
    sMes = Choose(iMes, _
      "enero", "febrero", "marzo", _
      "abril", "mayo", "junio", _
      "julio", "agosto", "septiembre", _
      "octubre", "noviembre", "diciembre" _
    )

    sMensaje = "Es " & sMes & "."

    Console.WriteLine(sMensaje)

    Console.ReadLine()

  End Sub

End Module

Bucles Editar

For Next Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer

    For iMes = 1 To 12
      Console.WriteLine(iMes)
    Next iMes

    Console.ReadLine()

  End Sub

End Module

Hacia atrás:

Option Explicit On

Module Module1

  Sub Main()

    Dim iMes As Integer

    For iMes = 12 To 1 Step -1
      Console.WriteLine(iMes)
    Next iMes

    Console.ReadLine()

  End Sub

End Module

Pasos diferentes a la unidad:

Option Explicit On

Module Module1

  Sub Main()

    Dim aMeses() As String = { _
      "enero", "febrero", "marzo", _
      "abril", "mayo", "junio", _
      "julio", "agosto", "septiembre", _
      "octubre", "noviembre", "diciembre" _
    }
    Dim iMes As Single
    Dim sMensaje As String

    For iMes = 0 To 11.5 Step 0.5
      sMensaje = "Es " & aMeses(Math.Floor(iMes))
      If Math.Floor(iMes) <> iMes Then
        sMensaje = sMensaje & " (mediados)"
      End If
      Console.WriteLine(sMensaje)
    Next iMes

    Console.ReadLine()

  End Sub

End Module

Con matrices:

Option Explicit On

Module Module1

  Sub Main()

    Dim aMeses() As String = { _
      "enero", "febrero", "marzo", _
      "abril", "mayo", "junio", _
      "julio", "agosto", "septiembre", _
      "octubre", "noviembre", "diciembre" _
    }
    Dim iMes As Integer

    For iMes = 0 To 11
      Console.WriteLine(aMeses(iMes))
    Next iMes

    Console.ReadLine()

  End Sub

End Module

For Each Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim aMeses() As String = { _
      "enero", "febrero", "marzo", _
      "abril", "mayo", "junio", _
      "julio", "agosto", "septiembre", _
      "octubre", "noviembre", "diciembre" _
    }
    Dim sMes As String

    For Each sMes In aMeses
      Console.WriteLine(sMes)
    Next sMes

    Console.ReadLine()

  End Sub

End Module

Alteración de bucles For Editar

Con Exit:

Option Explicit On

Module Module1

  Sub Main()

    Dim aMeses() As String = { _
      "enero", "febrero", "marzo", _
      "abril", "mayo", "junio", _
      "julio", "agosto", "septiembre", _
      "octubre", "noviembre", "diciembre" _
    }
    Dim sMes As String

    For Each sMes In aMeses
      If sMes = "abril" Then
        Exit For
      End If
      Console.WriteLine(sMes)
    Next sMes

    Console.ReadLine()

  End Sub

End Module

Con Continue:

Option Explicit On

Module Module1

  Sub Main()

    Dim aMeses() As String = { _
      "enero", "febrero", "marzo", _
      "abril", "mayo", "junio", _
      "julio", "agosto", "septiembre", _
      "octubre", "noviembre", "diciembre" _
    }
    Dim sMes As String

    For Each sMes In aMeses
      If sMes = "julio" Or sMes = "agosto" Then
        Continue For
      End If
      Console.WriteLine(sMes)
    Next sMes

    Console.ReadLine()

  End Sub

End Module

Do Loop Editar

La condición se evalúa al principio:

Option Explicit On

Module Module1

  Sub Main()

    Dim ckiTecla As ConsoleKeyInfo

    ckiTecla = Console.ReadKey
    Do Until ckiTecla.Key.ToString = "Q"
      ckiTecla = Console.ReadKey
    Loop

  End Sub

End Module

La condición se evalúa al final:

Option Explicit On

Module Module1

  Sub Main()

    Dim ckiTecla As ConsoleKeyInfo

    Do
      ckiTecla = Console.ReadKey
    Loop Until ckiTecla.Key.ToString = "Q"

  End Sub

End Module

Con While en lugar de Until, condición evaluada al principio:

Option Explicit On

Module Module1

  Sub Main()

    Dim ckiTecla As ConsoleKeyInfo

    ckiTecla = Console.ReadKey
    Do While ckiTecla.Key.ToString <> "Q"
      ckiTecla = Console.ReadKey
    Loop

  End Sub

End Module

Con While en lugar de Until, condición evaluada al final:

Option Explicit On

Module Module1

  Sub Main()

    Dim ckiTecla As ConsoleKeyInfo

    Do
      ckiTecla = Console.ReadKey
    Loop While ckiTecla.Key.ToString <> "Q"

  End Sub

End Module

Alteración de bucles Do Loop Editar

Con Exit Do:

Option Explicit On

Module Module1

  Sub Main()

    Dim ckiTecla As ConsoleKeyInfo

    Do
      ckiTecla = Console.ReadKey
      If ckiTecla.Key.ToString = "Q" Then
        Exit Do
      End If
    Loop

  End Sub

End Module

Con Continue Do:

Option Explicit On

Module Module1

  Sub Main()

    Dim ckiTecla As ConsoleKeyInfo

    Do
      ckiTecla = Console.ReadKey(True)
      If ckiTecla.Key.ToString = "P" Then
        Continue Do
      End If

      Console.WriteLine( _
        "Ha pulsando la tecla " & _
        ckiTecla.Key.ToString _
      )

    Loop While ckiTecla.Key.ToString <> "Q"

  End Sub

End Module

While End Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim ckiTecla As ConsoleKeyInfo

    ckiTecla = Console.ReadKey
    While ckiTecla.Key.ToString <> "Q"
      ckiTecla = Console.ReadKey
    End While

  End Sub

End Module

GoTo Editar

Option Explicit On

Module Module1

  Sub Main()

    Dim aMeses() As String = { _
      "enero", "febrero", "marzo", _
      "abril", "mayo", "junio", _
      "julio", "agosto", "septiembre", _
      "octubre", "noviembre", "diciembre" _
    }

    Dim i As Integer = 0

Inicio:
    Console.WriteLine(aMeses(i))
    i += 1
    If i < 12 Then GoTo Inicio

    Console.ReadLine()

  End Sub

End Module

¡Interferencia de bloqueo de anuncios detectada!


Wikia es un sitio libre de uso que hace dinero de la publicidad. Contamos con una experiencia modificada para los visitantes que utilizan el bloqueo de anuncios

Wikia no es accesible si se han hecho aún más modificaciones. Si se quita el bloqueador de anuncios personalizado, la página cargará como se esperaba.