Instrucciones en Visual Basic

En Visual Basic, una instrucción es una instrucción completa. Puede contener palabras clave, operadores, variables, constantes y expresiones. Cada instrucción pertenece a una de las categorías siguientes:

  • Instrucciones de declaración, que dan nombre a una variable, constante o procedimiento y también pueden especificar un tipo de datos.

  • Instrucciones ejecutables, que inician acciones. Estas instrucciones pueden llamar a un método o función, y pueden repetires en bloques de código o crear una bifurcación en otro bloque de código. Las instrucciones ejecutables incluyen instrucciones de asignación, que asignan un valor o expresión a una variable o constante.

En este tema se describe cada categoría. Asimismo, en este tema se describe cómo combinar varias instrucciones en una sola línea y cómo continuar una instrucción en varias líneas.

Instrucciones de declaración

Las instrucciones de declaración se utilizan para definir procedimientos, variables, propiedades, matrices y constantes, y asignarles nombre. Cuando se declara un elemento de programación, también se puede definir su tipo de datos, nivel de acceso y ámbito. Para obtener más información, vea Características de los elementos declarados (Visual Basic).

El siguiente ejemplo contiene tres declaraciones.

Public Sub applyFormat()
    Const limit As Integer = 33
    Dim thisWidget As New widget
    ' Insert code to implement the procedure.
End Sub

La primera declaración es la instrucción Sub. Junto con su instrucción End Sub correspondiente, declara un procedimiento denominado applyFormat. También especifica que applyFormat es Public, lo que quiere decir que cualquier código que pueda hacer referencia a ella, puede también llamarla.

La segunda declaración es la instrucción Const, que declara la constante limit, que especifica el tipo de datos Integer y un valor de 33.

La tercera declaración es la instrucción Dim, que declara la variable thisWidget. El tipo de datos es un objeto concreto, específicamente un objeto creado a partir de la clase Widget. Puede declarar una variable para que sea de cualquier tipo de datos elemental o de cualquier tipo de objeto que esté expuesto a la aplicación que está usando.

Valores iniciales

Cuando se ejecuta el código que contiene una declaración de instrucción, Visual Basic reserva la memoria necesaria para el elemento declarado. Si el elemento contiene un valor, Visual Basic lo inicializa al valor predeterminado para su tipo de datos. Para obtener más información, vea "Comportamiento" en Instrucción Dim (Visual Basic).

Puede asignar un valor inicial a una variable como parte de su declaración, como se puede ver en el ejemplo siguiente.

Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.

Si la variable es una variable de objeto, al declararla puede crear de forma explícita una instancia de su clase utilizando la palabra clave New (Operador, Visual Basic), como se muestra a continuación:

Dim f As New System.Windows.Forms.Form()

Observe que el valor inicial especificado en una instrucción de declaración no se asigna a una variable hasta que la ejecución llega a su instrucción de declaración. Hasta ese momento, la variable contiene el valor predeterminado para su tipo de datos.

Instrucciones ejecutables

Una instrucción ejecutable realiza una acción. Puede llamar a un procedimiento, bifurcar a otra parte del código, recorrer varias instrucciones con un bucle o evaluar una expresión. Una instrucción de asignación es un caso especial de una instrucción ejecutable.

En el ejemplo siguiente se utiliza una estructura de control If...Then...Else para ejecutar diferentes bloques de código basándose en el valor de una variable. En cada bloque de código, un bucle For...Next se ejecuta un número especificado de veces.

Public Sub startWidget(ByVal aWidget As widget,
    ByVal clockwise As Boolean, ByVal revolutions As Integer)
    Dim counter As Integer
    If clockwise = True Then
        For counter = 1 To revolutions
            aWidget.spinClockwise()
        Next counter
    Else
        For counter = 1 To revolutions
            aWidget.spinCounterClockwise()
        Next counter
    End If
End Sub

Después, la instrucción If del ejemplo anterior comprueba el valor del parámetro clockwise. Si el valor es True, llama al método spinClockwise de aWidget. Si el valor es False, llama al método spinCounterClockwise de aWidget. La estructura de control If...Then...Else finaliza con End If.

El bucle For...Next de cada bloque llama al método adecuado un número de veces igual al valor del parámetro revolutions.

Instrucciones de asignación

Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento de la izquierda, como en el ejemplo siguiente.

v = 42

En el ejemplo anterior, la instrucción de asignación almacena el valor literal 42 en la variable v.

Elementos de programación elegibles

El elemento de programación del lado izquierdo del operador de asignación debe poder aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que no es ReadOnly (Visual Basic), o debe ser un elemento de matriz. En el contexto de una instrucción de asignación, este tipo de elemento a veces se denomina valor l, que significa "valor de la izquierda".

El valor del lado derecho del operador de asignación se genera mediante una expresión que puede estar formada por cualquier combinación de literales, constantes, variables, propiedades, elementos de matriz, otras expresiones o llamadas a función. Esto se ilustra en el siguiente ejemplo:

x = y + z + findResult(3)

En el ejemplo anterior se agrega el valor almacenado en la variable y al valor almacenado en la variable z y, a continuación, se agrega el valor que devuelve la llamada a la función findResult. El valor total de esta expresión se almacena en la variable x.

Tipos de datos en instrucciones de asignación

Además de valores numéricos, el operador de asignación también puede asignar valores String, tal como muestra el ejemplo siguiente.

Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.

También se pueden asignar valores Boolean utilizando un literal Boolean o una expresión Boolean, tal como muestra el ejemplo siguiente.

Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.

Igualmente, se pueden asignar valores adecuados a elementos de programación del tipo de datos Char, Date u Object. También se puede asignar una instancia de objeto a un elemento declarado como miembro de la clase a partir de la que se crea esa instancia.

Instrucciones de asignación compuesta

Las instrucciones de asignación compuesta realizan primero una operación en una expresión antes de asignarla a un elemento de programación. En el siguiente ejemplo se muestra uno de estos operadores, +=, que incrementa el valor de la variable del lado izquierdo del operador con el valor de la expresión de la derecha.

n += 1

En el ejemplo anterior se suma 1 al valor de n y, a continuación, el nuevo valor se almacena en n. Es el equivalente abreviado de la siguiente instrucción:

n = n + 1

Mediante el uso de este tipo de operadores, puede realizarse una serie de operaciones de asignación compuestas. Para obtener una lista de estos operadores y más información sobre ellos, vea Operadores de asignación (Visual Basic).

El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de cadenas existentes, como se muestra en este ejemplo.

Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".

Conversiones de tipos en instrucciones de asignación

El valor que se asigna a una variable, propiedad o elemento de matriz debe ser de un tipo de datos apropiado para el elemento de destino. En general, hay que intentar generar un valor del mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden convertir en otros tipos durante la asignación.

Para obtener información sobre cómo convertir entre tipos de datos, vea Conversiones de tipos en Visual Basic. En pocas palabras, Visual Basic convierte automáticamente un valor de un tipo dado en cualquier otro tipo al que amplia. Una conversión de ampliación es aquella que siempre se produce en tiempo de ejecución y no pierde datos. Por ejemplo, Visual Basic convierte un valor Integer en Double cuando conviene, porque Integer se amplia a Double. Para obtener más información, vea Conversiones de ampliación y de restricción (Visual Basic).

Las conversiones de restricción (las que no son de ampliación) conllevan el riesgo de error o de pérdida de datos en tiempo de ejecución. Las conversiones de restricción se pueden realizar explícitamente mediante una función de conversión de tipos, o se puede indicar al compilador que realice implícitamente todas las conversiones estableciendo Option Strict Off. Para obtener más información, vea Conversiones implícita y explícita (Visual Basic).

Colocar varias instrucciones en una línea

Se pueden tener varias instrucciones en una sola línea separadas por el carácter de dos puntos (:). Esto se ilustra en el siguiente ejemplo:

Dim sampleString As String = "Hello World" : MsgBox(sampleString)

Aunque ocasionalmente puede resultar conveniente, esta forma de sintaxis dificulta la lectura y el mantenimiento del código. Por tanto, se recomienda mantener una instrucción por línea.

Continuar una instrucción en varias líneas

Normalmente, una línea suele ser suficiente para una instrucción, pero si la instrucción es demasiado larga, se puede continuar en la siguiente línea mediante una secuencia de continuación de línea, que está compuesta por un espacio seguido de un carácter de subrayado (_) y de un retorno de carro. En el siguiente ejemplo, la instrucción ejecutable MsgBox continúa en más de dos líneas.

Public Sub demoBox()
    Dim nameVar As String
    nameVar = "John"
    MsgBox("Hello " & nameVar _
        & ". How are you?")
End Sub

Continuación de línea implícita

En muchos casos, puede continuar una instrucción en la línea consecutiva siguiente sin utilizar el carácter de subrayado (_). En la tabla siguiente se enumeran los elementos de sintaxis que continúan implícitamente la instrucción en la línea de código siguiente.

Elemento de sintaxis

Ejemplo

Después de una coma (,).

Después de un paréntesis de apertura (() o antes de un paréntesis de cierre ()).

Después de una llave de apertura ({) o antes de una llave de cierre (}).

Para obtener más información, vea Inicializadores de objeto: Tipos con nombre y anónimos (Visual Basic) o Información general de los inicializadores de colección (Visual Basic).

Después de la apertura de una expresión incrustada (<%=) o antes del cierre de una expresión incrustada (%>) dentro de un literal XML.

Para obtener más información, vea Expresiones incrustadas (Visual Basic).

Después del operador de concatenación (&).

Para obtener más información, vea Operadores enumerados por funcionalidad (Visual Basic).

Después de operadores de asignación (=, &=, :=, +=, -=, *=, /=, \=, ^=, <<=, >>=).

Para obtener más información, vea Operadores enumerados por funcionalidad (Visual Basic).

Después de operadores binarios (+, -, /, *Mod, <>, <, >, <=, >=, ^, >>, <<, And, AndAlso, Or, OrElse, Like, Xor) dentro de una expresión.

Para obtener más información, vea Operadores enumerados por funcionalidad (Visual Basic).

Después de los operadores Is e IsNot.

Para obtener más información, vea Operadores enumerados por funcionalidad (Visual Basic).

Después de un carácter de calificador de miembro (.) y antes del nombre de miembro. Sin embargo, debe incluir un carácter de continuación de línea (_) a continuación de un carácter de calificador de miembro cuando esté utilizando la instrucción With o proporcionando valores en la lista de inicialización para un tipo. Considere la posibilidad de interrumpir la línea después del operador de asignación (por ejemplo, =) cuando esté utilizando instrucciones With o listas de inicialización de objetos.

Para obtener más información, vea With...End With (Instrucción, Visual Basic) o Inicializadores de objeto: Tipos con nombre y anónimos (Visual Basic).

Después de un calificador de propiedad de eje XML (. o .@ o ...). Sin embargo, debe incluir un carácter de continuación de línea (_) al especificar un calificador de miembro cuando esté utilizando la palabra clave With.

Para obtener más información, vea Propiedades de eje XML (Visual Basic).

Después de un signo menor que (<) o antes de un signo mayor que (>) al especificar un atributo. También, después de un signo mayor que (>) al especificar un atributo. Sin embargo, debe incluir un carácter de continuación de línea (_) al especificar atributos de nivel de ensamblado o de nivel de módulo.

Para obtener más información, vea Atributos (C# y Visual Basic).

Antes de y después de operadores de consulta (Aggregate, Distinct, From, Group By, Group Join, Join, Let, Order By, Select, Skip, Skip While, Take, Take While, Where, In, Into, On, Ascending y Descending). No puede interrumpir una línea entre las palabras clave de operadores de consulta que se componen de varias palabras clave (Order By, Group Join, Take While y Skip While).

Para obtener más información, vea Consultas de Visual Basic.

Después de la palabra clave In en una instrucción For Each.

Para obtener más información, vea Instrucción For Each...Next (Visual Basic).

Después de la palabra clave From en un inicializador de colección.

Para obtener más información, vea Información general de los inicializadores de colección (Visual Basic).

Agregar comentarios

El código fuente no es siempre fácil de entender, ni siquiera para el programador que lo escribió. Por consiguiente, como ayuda para documentar el código, la mayoría de los programadores utilizan libremente comentarios incrustados. Los comentarios en el código pueden explicar un procedimiento o una instrucción concreta a cualquiera que los lea o trabaje con ellos posteriormente. En Visual Basic, los comentarios se omiten durante la compilación y no afectan al código compilado.

Las líneas de comentario comienzan con un apóstrofo (') o REM seguido de un espacio. Se pueden agregar en cualquier parte del código, excepto en una cadena. Para anexar un comentario a una instrucción, inserte un apóstrofo o REM después de la instrucción, seguido del comentario. Los comentarios también pueden escribirse separados en una línea propia. En el ejemplo siguiente se muestran estas posibilidades.

' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.

Comprobar errores de compilación

Si después de escribir una línea de código, la línea se muestra con un subrayado azul con líneas onduladas (también puede mostrarse un mensaje de error), la instrucción contiene un error de sintaxis. Debe averiguar cuál es el problema en la instrucción y corregirlo; para ello, busque en la lista de tareas o desplace el puntero del mouse sobre el error y lea el mensaje de error). Mientras no corrija todos los errores de sintaxis del código, el programa no se compilará correctamente.

Secciones relacionadas

Término

Definición

Operadores de asignación (Visual Basic)

Proporciona vínculos a páginas de referencia del lenguaje que describen los operadores de asignación, como =, *= y &=.

Operadores y expresiones en Visual Basic

Muestra cómo combinar elementos con operadores para obtener nuevos valores.

Cómo: Interrumpir y combinar instrucciones en código (Visual Basic)

Muestra cómo dividir una instrucción única en varias líneas y cómo colocar varias instrucciones en la misma línea.

Cómo: Aplicar etiquetas a las instrucciones (Visual Basic)

Muestra cómo etiquetar una línea de código.