TUTORIAL VB NET 3: SENTENCIAS Y INSTRUCCIONES DE FLUJO

viernes, 23 de mayo de 2014

En este tutorial veremos los conceptos básicos sobre la programación en Visual Basic Net.
Este tutorial de VB net consistirá en aprender a utilizar las sentencias de flujo, sentencias  que nos servirán al momento de tomar decisiones en base a una o más condiciones.

El código de los siguientes ejemplos debe colocarse en un botón en un formulario como este.


Doble Clic en "Button 1" para agregar el código.



Así debería quedar.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
   Ingresar código aquí
     
End Sub

Sentencias de Flujo

IF
Es una sentencia que utilizaremos para evaluar condiciones y en base al resultado Verdadero o falso ejecutar una o varias instrucciones.
Su sintaxis más simple es:

If condición Then instrucciones

donde condición es una expresión lógica cuyo resultado es Verdadero o Falso, las  condiciones usan los operadores lógicos And o Or asimismo los operadores relacionales como <,<,=,<>,>=,<=.

Ejemplo 1:

Dim nombre as String
nombre="alex"
If nombre="alex" then MsgBox("Bienvenido Alex")

Se mostrara el MsgBox solo si cumple la condición en este caso el nombre es igual a  "alex" de lo contrario no.
Ojo: Los ejemplos diferencian si esta en mayúscula o no, "ALEX" no es igual a "alex".

Si deseamos comparar números.

Ejemplo 2:

Dim numero as Integer
If numero=0  then MsgBox("El numero es 0")

Con valores booleanos (true/false).

Ejemplo 3:

Dim flag as Boolean
flag=True
If flag then MsgBox("flag es true")

La sintaxis ya presentada ejecuta solo una instrucción por condición si queremos ejecutar más de una usaremos.

If condición Then
   instrucción1
   instrucción2
   "
   "
   "
End If

Por ejemplo:

Ejemplo 4:

Dim nombre as String
nombre="alex"
If nombre="alex" Then
   MsgBox("Bienvenido Alex")
   MsgBox("Buen dia")
End If

Qué pasa si queremos que nuestro programa muestre una instrucción cuando la condición se cumpla y otra cuando no, para ello usaremos:

If condición then
   instrucción1
   instrucción2
   "
   "
   "
Else
   instrucción1
   instrucción2
   "
   "
   "
End If

Ejemplo 5:

dim nombre as string
 nombre = InputBox("Ingrese el usuario")
 If nombre = "alex" Then
     MsgBox("Bienvenido Alex")
     MsgBox("Buen dia")
  Else
     MsgBox("acceso denegado")
  End If

Si el nombre es "alex" mostrara las dos ventanas de alerta de lo contrario "acceso denegado", "Inputbox" nos abrirá una ventana donde deberemos ingresar un texto.

Otra variación es si tenemos múltiples condiciones, siendo el último else opcional, para ello usaremos la siguiente sintaxis:

If condición Then
   instruccion1
   instruccion2
   "
   "
Elseif() 
   instruccion1
   instruccion2
   "
   "
Else
   "
   "
End if


Ejemplo 6:

Crearemos una aplicación donde ingresaremos el nombre de un usuario si cumple nuestras condiciones mostrara un mensaje de bienvenida en el caso contrario de rechazo.

Dim user As String
user = InputBox("Ingresa el usuario")
If (user = "alex") Then
            MsgBox("Bienvenido Alex")
ElseIf (user = "marco") Then
            MsgBox("Bienvenido Marco")
ElseIf (user = "miguel") Then
            MsgBox("Bienvenido Miguel")
Else
            MsgBox("No eres bienvenido")
End If


"Inputbox" nos abrirá una ventana donde deberemos ingresar un texto a elección. En el siguiente ejemplo en caso de ingresar un usuario equivocado no mostrara ningún mensaje.

Ejemplo 7:

Dim user As String
user = InputBox("Ingresa el usuario")
If (user = "alex") Then
     MsgBox("Bienvenido Alex")
 ElseIf (user = "marco") Then
      MsgBox("Bienvenido Marco")
 ElseIf (user = "miguel") Then
       MsgBox("Bienvenido Miguel")
  End If

También es posible comparar fechas.

Ejemplo 8:

If (#12/12/2000# > #12/12/1900#) Then
     MsgBox("Probando Fechas")
End If

Ejemplo 9:

 Dim fechaactual As Date
 fechaactual = Today

 If (fechaactual < #12/12/1900#) Then
      MsgBox("probando fechas")
 End If

Ahora usaremos los más conocidos operadores relacionales.

Ejemplo 10:

dim numero as integer
 numero = 5
 If (numero > 0) And (numero < 10) Then
     MsgBox("Numero esta entre 0 y 10")
  End If

En este ejemplo se mostrara un mensaje solo si el número está entre 0 y 10, gracias a que utilizamos el operador "and" que permite unir 2 condiciones.
Nota: Los paréntesis en este caso son opcionales sirven para ordenar un poco el código.

Ejemplo 11:

Dim numero As Integer
numero = 5
If (numero = 2) Or (numero = 5) Then
    MsgBox("Numero es 2 o 5")
End If

Con "Or" la condición se cumple solo si una o las dos condiciones son verdaderas, en este caso se mostrara el mensaje solo si nuestra variable numero es 2 o 5. El ejemplo también se podría haber escrito utilizando un else.

Probaremos el sgte ejemplo con la función "IsNumeric" que devolverá Verdadero si el valor ingreso es un numero, Falso en el caso contrario.

Ejemplo 12:

Dim cadena As String
cadena = InputBox("Ingrese un numero")
If (IsNumeric(cadena)) Then
     MsgBox("Es un numero")
 End If

También podemos usar "Not" para negar una condición:

Ejemplo 13: 

Dim cadena As String
cadena = InputBox("Ingrese un numero")
If Not IsNumeric(cadena) Then
    MsgBox("No es un numero")
End If


IIf
Es una instrucción condicional muy similar a IF que toma como argumentos una condición, un argumento para verdadero y otro para falso.
Su sintaxis es :

IIf(condicion,valor verdadero,valor falso)

Donde si la condición es verdadera toma el primer valor de lo contrario el segundo.

Ejemplo 14:

Dim resultado as string
Dim edad As Integer
edad = 22
resultado = IIf(edad < 18, "menor de edad", "mayor de edad")
MsgBox(resultado)

Mostrara el resultado de acuerdo a la condición establecida "edad<18".

Select Case
Es otro tipo de instrucción condicional múltiple la ventaja que tiene con los IF es que es más ordenado y fácil de entender.
Su sintaxis es:

Select Case condición
            Case valor1
                instrucciones()
            Case valor2
                instrucciones()
            Case valor3
                instrucciones()
       "
       "
       "
       "
           Case Else
                instrucciones()
   End Select

Donde el último case el "case else" es opcional.

Ejemplo 15:

Dim usuario As String
usuario = InputBox("Ingresar usuario")

        Select Case usuario
            Case "alex"
                MsgBox("hola alex")
            Case "marco"
                MsgBox("hola alex")
            Case "fabricio"
                MsgBox("hola fabricio")
            Case Else
                MsgBox("hola extraño")
        End Select

Ejemplo 16:

dim edad as integer
edad = 22

Select Case edad
          Case Is < 18
                MsgBox("eres un menor de edad")
          Case Is >= 18
                MsgBox("eres un mayor de edad")
 End Select


Instrucciones Repetitivas

Estas instrucciones nos ayudaran con procesos repetitivos de acuerdo claro a ciertas condiciones.
Nota: Un error muy común es meterse en bucles infinitos, saldremos de ello con Ctrl+j (a tenerlo en cuenta).

For Next
Es una instrucción repetitiva se diferencia de las otras que vamos a estudiar en que  es necesario conocer de antemano el número de repeticiones.
Su sintaxis es:

For contador=inicio To fin step incremento
instrucciones
Next

Lo veremos mas claramente con un ejemplo.

Ejemplo 17:

dim i as integer
 For i = 0 To 10
       MsgBox(" el numero es " & i)
 Next

Como vemos el For ira de 0 a 10, incrementándose el valor de 1 a 1, si deseamos un incremento mayor podríamos usar Step.

Ejemplo 18:

 Dim i As Integer
 For i = 0 To 10 Step 2
            MsgBox(" el numero es " & i)
 Next

Que mostrara los valores 2,4,6,8,10, siendo 2 el incremento.

También podríamos mostrar los valores en forma descendente así.

Ejemplo 19:

 Dim i As Integer
 For i = 10 To 0 Step -1
        MsgBox(" el numero es " & i)
 Next


Cambiando los valores de inicio y final asimismo siendo nuestro decremento -1 para obtener

10,9,8,7,6,5,4,3,2,1

"Exit For", nos permite salir del For sin que lleguemos al final. 


Ejemplo 20:

 Dim i As Integer
 For i = 0 To 10
       MsgBox(" el numero es " & i)
       If (i = 5) Then Exit For
 Next


Do While
Esta instrucción genera loops en base a una condición, se diferencia de For en que no es necesario conocer de antemano el número de repeticiones ya que todo depende de la condición.
Su sintaxis es:

Do while condición
'instrucciones
Loop

O su variante 

Do
'instrucciones
Loop while condición


Ejemplo 21:

Dim i As Integer
i = 0
Do While i < 10
       MsgBox("El numero es " & i)
        i = i + 1
 Loop

Generara loops hasta que la condición deje de cumplirse ya que nuestro contador i aumentara de valor en cada ciclo o dicho de otra manera hasta que la condición sea falsa.

Con un Do While invertido, la condición es evaluada al final no al comienzo.

Ejemplo 22:

Dim i As Integer
        i = 0

 Do
          MsgBox("el numero es " & i)
          i = i + 1
 Loop While i < 10


While
Similar a "Do While", su sintaxis es:

While condición 
   instrucciones
End While

Ejemplo 23:

Dim i As Integer
       i = 0

While i < 10
            MsgBox("el número es " & i)
            i = i + 1
End While

"Exit While" nos permite salir de un bucle While. por ejemplo:

Ejemplo 24:

Dim i As Integer
        i = 0

While i < 10
            MsgBox("numero es " & i)
            i = i + 1
            If (i = 5) Then Exit While
End While


Do Until
Esta instrucción es similar a "Do While" con la única diferencia en que se ejecuta hasta que la condición sea verdadera o se cumpla.
Su sintaxis es:

Do Until condición
Instrucciones
Loop

O

Do
instrucciones
Loop Until condición


Ejemplo 25:

Dim i as integer
        i = 0

 Do Until i = 5
            MsgBox("El número es " & i)
            i = i + 1
  Loop

Mientras la condición sea falsa es decir i sea diferente de 5 el ciclo seguirá.

También se podría haber creado este ejemplo como:  

Ejemplo 26:

Dim i As Integer
        i = 0

Do
         MsgBox("El número es " & i)
          i = i + 1
Loop Until i = 5


For Each...Next
Esta es una sentencia que es usada para iterar sobre variables de tipo arrays o collections.

Ejemplo 27:

Dim dias() as string={"Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"}                          

For Each diad As String In dias
                MsgBox(diad)
Next


Ejemplo 28:

Dim numeros() As Integer = {1, 2, 3, 4, 5, 6, 7}

For Each number As Integer In numeros
            MsgBox(number)
Next

 

Facebook Comments


0 comentarios:

Publicar un comentario