visual basic.net : estructuras de control(5)
DESCRIPTION
ESTRUCTURAS DE CONTROL en vb.netTRANSCRIPT
1 Lola Cano Gil
If condición Then instrucción
ESTRUCTURAS DE CONTROL
1. CONDICIONALES SIMPLES
La instrucción de condición en VB es el if que dispone de varios formatos.
Formato 1:
Para ejecutar condicionalmente una sola instrucción.
Solo dispone de la parte cierta.
Formato 2:
Para ejecutar condicionalmente múltiples instrucciones en el caso de ser cierta la condición
Formato 3:
Evalúa la condición y si es verdadera ejecuta la instrucción1 en caso de ser falsa ejecutaría la instrucción2.
Formato 4:
Ejecuta condicionalmente un grupo de instrucciones, dependiendo del valor de una expresión
1-Se puede usar la forma de una sola línea (formato 1 y formato 3) para pruebas cortas y sencillas. Sin embargo, la forma de bloque del resto de los formatos proporciona más estructura y flexibilidad que la forma de línea simple y, generalmente, es más fácil de leer, de mantener y de depurar.
2- Con los formatos 1 y 3 es posible ejecutar múltiples instrucciones como resultado de una decisión If...Then, pero todos deben estar en la misma línea y separados por dos puntos, como en la instrucción siguiente:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
3-El código que sigue a la palabra clave Then se examina para determinar si una instrucción es o no un bloque If. Si en la misma línea, después de la instrucción Then, aparece algo que no sea un comentario, la instrucción se trata como una instrucción If de una sola línea.
4-Una instrucción de bloque If debe ser el primero en una línea. Las partes Else, ElseIf y End If, de la instrucción, sólo pueden ser precedidas por un número de línea o un etiqueta de línea.
5- El bloque If debe terminar con una instrucción End If.
Formato 5: Puede de usar la siguiente sintaxis, más versátil:
La sintaxis de la instrucción If...Then...Else tiene tres partes:
condicion-1, condición-2: es una expresión numérica o expresión de cadena que puede ser evaluada en True o False. Si condición es Null, condición se considera False.
Bloque instrucciones 1- Una o más instrucciones , ejecutados si condición es True.
Bloque instrucciones 2- Una o más instrucciones, ejecutados si la condición-n asociada es True.
If condición Then Instrucciones End If
If condición Then Instrucción1 Else Instrucción2
If condición Then [Bloque de instrucciones 1] Else [Bloque de instrucciones 2] End If
If condición-1 Then [Bloque instrucciones 1] [ElseIf condición-2 Then
[bloque instrucciones 2]] . . . [Else
[bloque instrucciones n]] End If
2 Lola Cano Gil
Pass
contraseña
Limpiar
salir
Label1
Bloque de instrucciones 3- Una o más instrucciones ejecutadas si ninguna de las anteriores expresiones condición o condición-2 es True.
Cuando se ejecuta un bloque If, se prueba condición. Si condición es True, se ejecutan las instrucciones que están a continuación de Then. Si condición es False, cada ElseIf condición (si existe) se evalúa a su vez.
Cuando se encuentra una condición True se ejecutan las instrucciones que siguen inmediatamente a la instrucción Then asociada.
Si ninguna de las condiciones ElseIf es True (o si no hay cláusulas ElseIf), se ejecutan las instrucciones que siguen a Else.
Después de la ejecución de las instrucciones que siguen a Then o Else, la ejecución continúa con la instrucción que sigue a .End If.
Las cláusulas Else y ElseIf son opcionales. Se pueden tener en un bloque ElseIf, tantas cláusulas If como se deseen, pero ninguna puede aparecer después de una cláusula Else. Las instrucciones de bloque If se pueden anidar; es decir, unas pueden contener a otras.
Select Case (punto siguiente) puede ser más útil cuando se evalúa una sola expresión que tiene varias acciones posibles.
Ejercicio contraseña. 5.1
Calcular la password de entrada.
1. Fase diseño
2. Propiedades en fase diseño:
TIPO-OBJETO NOMBRE PROPIEDAD VALOR
ventana FORM1 TEXT Contraseña
CANCELBUTTON salir
ACCPETBUTTON contraseña
BOTON contraseña TEXT contraseña
limpiar TEXT limpiar
salir TEXT fin
Caja de texto pass TEXT
PassWordChar *
etiqueta LABEL1 TEXT
3. Código:
3 Lola Cano Gil
dni
letra
nif
limpiar calcular
salir
Private Sub CONTRASEÑA_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles CONTRASEÑA.Click
Static contador As Integer
contador += 1
If PASS.Text = "xxxx" Then
Label1.Text = "contraseña coreccta, intentos: " + Str(contador)
Else
Label1.Text = "contraseña incoreccta , intentos: " +
Str(contador)
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
End
End Sub
Private Sub limpiar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles limpiar.Click
PASS.Text = ""
PASS.Focus()
End Sub
Ejercicio NIF (IF y Arrays) 5.2
Calcular la letra del NIF para un DNI. Se trabaja con Arrays.
4. Fase diseño
5. Propiedades en fase diseño:
TIPO-OBJETO NOMBRE PROPIEDAD VALOR
ventana FORM1 TEXT Letra NIF
CANCELBUTTON salir
ACCPETBUTTON calcular
BOTON calcular TEXT calcular
limpiar TEXT limpiar
salir TEXT fin
Caja de texto dni TEXT
letra ReadOnLy True
4 Lola Cano Gil
nif ReadOnLy True
etiqueta LABEL1 TEXT DNI:
Label2 TEXT Letra:
Label3 TEXT NIF:
6. Código:
Private Sub limpiar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles limpiar.Click
letra.Text = ""
nif.Text = ""
dni.Text = ""
dni.Focus()
End Sub
Private Sub calcular_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles calcular.Click
Dim tabla As String() = {"T", "R", "W", "A", "G", "M", "Y", "F", "P",
"D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E", "T"}
If dni.Text = "" Then
MessageBox.Show("debes introducir un DNI")
dni.Focus()
Else
letra.Text = tabla((CInt(dni.Text) Mod 23))
nif.Text = dni.Text + letra.Text
End If
End Sub
Private Sub salir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles salir.Click
End
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
dni.Text = ""
End Sub
End Class
2.- CONDICIONALES MÚLTIPLES.
Ejecuta uno de varios grupos de instrucciones, dependiendo del valor de una expresión.
Expresiónprueba: Cualquier expresión numérica o expresión de cadena
expresiónlista-n: Lista delimitada por puntos y coma de una o más de las formas siguientes: expresión, expresión To expresión, Is expresión operadordecomparación. La palabra clave To especifica un intervalo de valores. Si se usa la palabra clave To, el valor menor debe aparecer antes de To. Use la palabra clave con operadores de comparación (excepto Is y Like) para especificar un intervalo de valores. Si no se suministra, la palabra clave Is se inserta automáticamente.
Select Case expresiónprueba
[Case listaexpresión-n
[instrucciones-n]] . . .
[Case Else
[instruccionessiotro]]
End Select
5 Lola Cano Gil
instrucciones-n: Una o más instrucciones ejecutadas si expresiónprueba coincide con cualquier parte de listaexpresión-n.
instruccionessiotro: Una o más instrucciones ejecutadas si expresiónprueba no coincide con nada de la cláusula Case.
Si expresiónprueba coincide con cualquier listaexpresión asociada con una cláusula Case, las instrucciones que siguen a esa cláusula Case se ejecutan hasta la siguiente cláusula Case o, para la última cláusula, hasta la instrucción End Select. El control pasa después a la instrucción que sigue a End Select.
Si expresiónprueba coincide con una expresión de listaexpresión en más de una cláusula Case, sólo se ejecutan las instrucciones que siguen a la primera coincidencia.La cláusula Case Else se usa para indicar las instrucciones que se van a ejecutar si no se encuentran coincidencias entre expresiónprueba y una listaexpresión en cualquiera de las otras selecciones de Case.
Cuando no hay una instrucción Case Else y ninguna expresión listada en las cláusulas Case coincide con expresiónprueba, la ejecución continúa en la instrucción que sigue a End Select.
Aunque no es requerido, es buena idea tener una instrucción Case Else en el bloque Select Case para manejar valores imprevistos de expresiónprueba.
Se pueden usar expresiones múltiples o intervalos en cada cláusula Case. Por ejemplo, la línea siguiente es válida:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
El operador de comparación Is no es lo mismo que la palabra clave Is usada en la instrucción Select Case.
6.-También se puede especificar intervalos y expresiones múltiples para cadenas de caracteres. En el siguiente ejemplo, Case coincide con las cadenas que son exactamente iguales a todo, cadenas que están entre nueces y sopa en orden alfabético y el valor actual de ElemPrueba:
Case "iguales a todo", "nueces" To "sopa", ElemPrueba
Las instrucciones Select Case se pueden anidar. Cada instrucción Select Case debe tener su correspondiente instrucción End Select.
Ejercicio Select Case 1 5.3
Sacar el nombre y la imagen de un animal que empieza por una letra: Trabajar con Select Case y PictureBox..
7. Fase diseño
8. Propiedades en fase diseño:
TIPO-OBJETO NOMBRE PROPIEDAD VALOR
PictureBox
TextBox1
TextBox2
Botón salir
Botón pulsar
Label1
6 Lola Cano Gil
ventana FORM1 TEXT ANIMALES
CANCELBUTTON salir
ACCPETBUTTON PULSAR
BOTON PLUSAR TEXT PULSAR
Salir TEXT SALIR
Caja de texto TextBox1 TEXT
MaxLength 1
TextBox2 text
etiqueta LABEL1 TEXT Introducir una letra:
PictureBox PictureBox1 SizeMode StrechImage
BorderStyle Fixed3D
9. Código:
Ejercicio aleatorio 5.4
Adivinar un numero. Practicar Rnd.
10. Fase diseño
11. Propiedades en fase diseño:
TIPO-OBJETO NOMBRE PROPIEDAD VALOR
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
' CADA VEZ QUE CAMBIA LA LETRA CAMBIO EL ROTULO DEL BOTON
PULSAR.Text = "Animales que empiezan por .." & TextBox1.Text
End sub
Private Sub SALIR_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles SALIR.Click
Me.Close()
End Sub
Private Sub PULSAR_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles PULSAR.Click
Select Case TextBox1.Text
Case "a", "A"
TextBox2.Text = "Abeja"
PictureBox1.Image = Image.FromFile("imagenes/abeja.gif")
Case "b", "B"
TextBox2.Text = "Burro, Ballena"
PictureBox1.Image =
Image.FromFile("imagenes/burro_animado.gif")
Case "C", "c"
TextBox2.Text = "Caballo,cerdo"
PictureBox1.Image = Image.FromFile("imagenes/caballo.gif")
Case Else
TextBox2.Text = "No se ninguno por " & TextBox1.Text
End Select
' PONGO EL FOCO DE ATENCION EN LA CAJA DE TEXTO TEXTBOX1.TEXT
TextBox1.Text = ""
TextBox1.Focus()
End Sub
7 Lola Cano Gil
ventana FORM1 TEXT aleatorio
CANCELBUTTON salir
BOTON Button1a TEXT Generar un numero
Salir TEXT &Salir
Caja de texto N TEXT
etiqueta LABEL1 TEXT Introducir un numero entre..
12. Código:
Public Class Form1
Inherits System.Windows.Forms.Form
Dim num As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Randomize()
End Sub
Private Sub n_KeyPress(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles n.KeyPress
Dim P As Byte
If Asc(e.KeyChar) = 13 Then
Select Case Int(n.Text)
Case Is > num
P = MsgBox("EL NÚMERO ES MENOR ", 4, "¿QUIERES
CONTINUAR?")
Case Is = num
P = MsgBox("HAS ACERTADO ", 4, "¿QUIERES CONTINUAR?")
Case Is < num
P = MsgBox("EL NÚMERO ES MAYOR ", 4, "¿QUIERES
CONTINUAR?")
End Select
If P = 7 Then
MsgBox(" el número era: " & num & " adios") : End
Else : n.Text = ""
End If
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
num = Int(99 * Rnd() + 1)
n.Focus()
End Sub
3. ESTRUCTURAS DE BUCLES.
3.1. DO…….LOOP
Repite un bloque de instrucciones cuando una condición es True o hasta que una condición se convierta en True.
Formato1:
8 Lola Cano Gil
Do While condición Hacer mientras condición
[Instrucciones] ………………….. [Exit Do] [salir de hacer] [Instrucciones] …………………
Loop fin-mientras Do Until condición Hacer hasta condición
[Instrucciones] ………………….. [Exit Do] [salir de hacer] [Instrucciones] …………………
Loop fin-hasta
Do [{While | Until} condición
[Instrucciones]
[Exit Do]
[Instrucciones]
Loop
Puede usar esta
sintaxis válida
equivalente:
Formato2:
La sintaxis de la instrucción Do...Loop tiene estas partes:
Condición: Numérico o expresión de cadena que es True o False. Si la condición es Null, condición se considera False.
Instrucciones: Una o más instrucciones que se repiten mientras o hasta que condición sea True.
La instrucción Exit Do sólo se puede usar dentro de una estructura de control Do...Loop, para proporcionar una forma alternativa de salir de un Do...Loop.
Se puede colocar cualquier número de instrucciones Exit Do en cualquier lugar del Do...Loop.
Exit Do, usado a menudo en la evaluación de alguna condición (por ejemplo, If...Then), transfiere control a la instrucción que sigue inmediatamente a la instrucción Loop.
Cuando se usa con instrucciones anidadas Do...Loop, Exit Do transfiere control al bucle que está anidado un nivel por encima del bucle donde ocurre.
3.2. BUCLE FOR….NEXT
Repite un grupo de instrucciones un número especificado de veces.
La sintaxis de la instrucción For...Next tiene estas partes:
Contador: Variable numérica que se usa como contador de bucle. La variable
Puede usar esta sintaxis válida equivalente:
Do Hacer
[Instrucciones] ………………….. [Exit Do] [salir de hacer] [Instrucciones] …………………
Loop While condición mientras condición Do Hacer
[Instrucciones] ………………….. [Exit Do] [salir de hacer] [Instrucciones] …………………
Loop Until condición hasta condición
Do
[Instrucciones]
[Exit Do]
[Instrucciones]
Loop [{While | Until} condición]
For contador = principio To fin [Step incremento]
[Instrucciones]
[Exit For]
[Instrucciones]
Next [contador]
9 Lola Cano Gil
no puede ser ningún elemento de matriz o ningún elemento de tipo definido por el usuario.
Principio: Valor inicial del contador.
Fin: Valor final del contador.
Incremento: Cantidad en la que cambia el contador cada vez a través del bucle. Si no se especifica, el valor predeterminado de incremento es uno.
instrucciones Una o más instrucciones entre For y Next que se ejecutan un número especificado de veces.
El argumento incremento puede ser positivo o negativo. El valor del argumento incremento determina la manera en que se procesa el bucle, como se muestra a continuación:
Valor El bucle se ejecuta
Positivo o 0 contador <= fin
Negativo contador >= fin
Una vez que se inicia el bucle y se han ejecutado todas las instrucciones en el bucle, incremento se suma a contador. En este punto, las instrucciones en el bucle se pueden ejecutar de nuevo (basados en la misma prueba que causó que el bucle se ejecutara inicialmente) o se sale del bucle y la ejecución continúa con la instrucción que sigue a la instrucción.
Cambiar el valor de contador mientras se está dentro de un bucle, puede hacer difícil su lectura y depuración.
La instrucción Exit For sólo se puede usar dentro de una estructura de control For Each...Next o For...Next, para proporcionar una manera alternativa de salir. Se pueden colocar en el bucle cualquier número de instrucciones Exit For.
La instrucción Exit For, el cual se usa a menudo en la evaluación de alguna condición (por ejemplo, If...Then), transfiere el control a la instrucción que sigue inmediatamente a la instrucción Next.
Se pueden anidar bucles For...Next, colocando un bucle For...Next dentro de otro. Para ello, proporcione a cada bucle un nombre de variable único como su contador. La siguiente construcción es correcta:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
Next K
Next J
Next I
6. Si se omite un contador en una instrucción Next, la ejecución continúa como si aquél se hubiera incluido. Ocurre un error si se encuentra una instrucción Next antes de su instrucción For correspondiente.
10 Lola Cano Gil
Programa ejercicio tabla multiplicar (con for): 5.6
1. Fase diseño:
2. Propiedades en fase de diseño:
TIPO-OBJETO NOMBRE PROPIEDAD VALOR
Ventana Form1 Text Ejercicio 13
Backcolor InactiveCaption
Font Microsoft Sans Serif, 10 pto, style=Bold
CancelButton fin
AcceptButton visualizar
Botón visualizar Text VISUALIZAR
limpiar Text LIMPIAR
fin Text SALIR
Etiqueta Label1 Visible False
Label2 Text
Label3 Text
Caja de texto numero Text
solucion ReadOnly True
Multiline True
ScrollBars Vertical
3. Código:
Private Sub fin_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles fin.Click
End
End Sub
Private Sub limpiar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles limpiar.Click
numero.Text = ""
solucion.Text = ""
numero.Focus()
End Sub
Private Sub visualizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles visualizar.Click
Dim i As Integer
If numero.Text = "" Then
Label1
Label2 numero
limpiar visualizar
Label3
solucion
fin
11 Lola Cano Gil
MessageBox.Show("Debes introducir el numero de la tabla que
quieres visualizar ")
numero.Focus()
Else
For i = 0 To 10 Step 1
solucion.Text &= numero.Text & " x " & i & " = " &
(numero.Text * i).ToString & Chr(13) & Chr(10)
Next
End If
End Sub
Private Sub visualizar_MouseMove(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles visualizar.MouseMove
Label1.Text = "Muestra la tabla de multiplicar del numero que
colocamos en la caja de texto"
Label1.Visible = True
End Sub
Private Sub fin_MouseMove(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles fin.MouseMove
Label1.Text = "Pulsar para salir de la aplicación"
Label1.Visible = True
End Sub
Private Sub limpiar_MouseMove(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles limpiar.MouseMove
Label1.Text = "Limpia la caja de texto"
Label1.Visible = True
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
Label1.Visible = False End Sub
3.3. FOR EACH…..Next
Este bucle es parecido al anterior
For….Next, pero es muy útil para recorrer matrices sin necesidad del índice.
Dim i As Integer
For Each i In a
TextBox7.Text = TextBox7.Text & CStr(i) & " "
Next
Si variable no está declarada fuera del bucle, puede utilizar la cláusula As para declararla como parte de la instrucción For Each.
Ejercicio Array 5.7
Se trabaja con Arrays, propiedades y métodos, For…. Next y For Each…..Next
1. Fase diseño
For Each variable [ As tipo ] In matriz [Instrucciones]
[Exit For]
[Instrucciones]
……………….
Next [variable]
12 Lola Cano Gil
2. Código: Public Class Form1
Inherits System.Windows.Forms.Form
Dim a() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 24, 25, 34, 0, -1,
56, 89}
………………………………………
Private Sub ver_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ver.Click
Dim i%
For i = 0 To a.Length - 1
TextBox1.Text = TextBox1.Text & a(i)
If i < a.Length - 1 Then
TextBox1.Text = TextBox1.Text & ","
End If
Next
End Sub
Private Sub suma_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles suma.Click
Dim i%
Dim sum As Long = 0
For i = 0 To a.Length - 1
sum += a(i)
Next
TextBox2.Text = sum
End Sub
Private Sub ordenar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ordenar.Click
Dim b(a.Length - 1) As Integer
Dim i%
a.CopyTo(b, 0)
Array.Sort(b)
For i = 0 To b.Length - 1
TextBox3.Text = TextBox3.Text & b(i)
If i < b.Length - 1 Then
TextBox3.Text = TextBox3.Text & ","
End If
Next
End Sub
Private Sub invertir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles invertir.Click
13 Lola Cano Gil
Dim b(a.Length - 1) As Integer
Dim i%
a.CopyTo(b, 0)
Array.Reverse(b)
For i = 0 To b.Length - 1
TextBox4.Text = TextBox4.Text & b(i)
If i < b.Length - 1 Then
TextBox4.Text = TextBox4.Text & ","
End If
Next
End Sub
Private Sub numero_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles numero.Click
TextBox5.Text = a.Length
End Sub
Private Sub dimension_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles dimension.Click
TextBox6.Text = a.Rank
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim i As Integer
For Each i In a
TextBox7.Text = TextBox7.Text & CStr(i) & " "
Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
End Sub
End Class
Ejercicio propuesto: 5.8
Ejercicio array2. Introducir los nombres y notas de alumnos de una determinada asignatura. Calcular y visualizar: Numero de alumnos aprobados. Numero de alumnos suspensos. La nota media. Cual es la nota más alta y a que alumno le corresponde. La nota más baja y el alumno que la tiene. Tres modos de solucionarlo:
1- dos arrays (notas y nombres) 2- 1 array dos dimensiones. 3- Con estructuras
14 Lola Cano Gil
3.4. BUCLE WHILE….WEND
Ejecuta una serie de instrucciones mientras una condición dada sea True.
La sintaxis de la instrucción While...Wend tiene estas partes:
Condición: Expresión numérica o expresión de cadena cuyo valor es True o False. Si condición es Null, condición se considera False.
Instrucciones:Una o más instrucciones ejecutadas mientras la condición es True.
Si condición es True, todas las instrucciones en instrucciones se ejecutan hasta que se encuentra la instrucción Wend.
Después, el control vuelve a la instrucción While y se verifica de nuevo condición.
Si condición es aún True, se repite el proceso. Si no es True, la ejecución se reanuda con la instrucción que sigue a la instrucción Wend.
Los bucles While...Wend se pueden anidar a cualquier nivel. Cada Wend coincide con el While más reciente.
Sugerencia La instrucción Do...Loop proporciona una manera más flexible y estructurada de realizar los bucles.
While condición
[instrucciones]
………………..
Wend