Ejemplos de For . Next en Visual Basic 






Use For… Next estructura en la que se desea repetir un conjunto de instrucciones un número de veces.

En el ejemplo siguiente, la Index variable empieza con un valor de 1 y se incrementa con cada iteración del bucle, finalizando después del valor de index hasta 5.

VB
For index As Integer = 1 To 5
    Debug.Write(index.ToString & " ")
Next
Debug.WriteLine("")
' Output: 1 2 3 4 5

En el ejemplo siguiente, la number variable empieza en 2 y se reduce por 0,25 en cada iteración del bucle, finalizando después del valor number de hasta 0. E step argumento de -.25 reduce el valor en 0,25 en cada iteración del bucle.

VB
For number As Double = 2 To 0 Step -0.25
    Debug.Write(number.ToString & " ")
Next
Debug.WriteLine("")
' Output: 2 1.75 1.5 1.25 1 0.75 0.5 0.25 0 


Anidar bucles


Puede anidar For bucles colocando un bucle dentro de otro. En el siguiente ejemplo se muestra For la instrucción anidada... Next estructuras que tienen valores de pasos diferentes. El bucle exterior crea una cadena para cada iteración del bucle. El bucle interno reduce una variable de contador de bucle para cada iteración del bucle.

VB
For indexA = 1 To 3
    ' Create a new StringBuilder, which is used
    ' to efficiently build strings.
    Dim sb As New System.Text.StringBuilder()

    ' Append to the StringBuilder every third number
    ' from 20 to 1 descending.
    For indexB = 20 To 1 Step -3
        sb.Append(indexB.ToString)
        sb.Append(" ")
    Next indexB

    ' Display the line.
    Debug.WriteLine(sb.ToString)
Next indexA
' Output:
'  20 17 14 11 8 5 2
'  20 17 14 11 8 5 2
'  20 17 14 11 8 5 2

Al anidar bucles, cada bucle debe tener una variable contourne única.

También puede anidar distintos tipos de estructuras de control.

Salir de y continuar para


La Exit For instrucción sale inmediatamente de For...Next bucle y transfiere el control a la instrucción que sigue¿ Next a la instrucción.

La Continue For  instrucción transfiere el control inmediatamente a la siguiente iteración del bucle.

En el ejemplo siguiente se muestra el uso  Continue For las Exit For instrucciones y.

VB
For index As Integer = 1 To 100000
    ' If index is between 5 and 7, continue
    ' with the next iteration.
    If index >= 5 AndAlso index <= 8 Then
        Continue For
    End If

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop.
    If index = 10 Then
        Exit For
    End If
Next
Debug.WriteLine("")
' Output: 1 2 3 4 9 10



En  el ejemplo se For muestra un... Nextinstrucción que recorre en iteración en orden descendente. En el ejemplo se utiliza esta técnica removeAt porque el método hace que los elementos situados después del elemento quitado tengan un valor de índice inferior.

VB
Dim lst As New List(Of Integer) From {10, 20, 30, 40}

For index As Integer = lst.Count - 1 To 0 Step -1
    lst.RemoveAt(index)
Next

Debug.WriteLine(lst.Count.ToString)
' Output: 0



En el ejemplo siguiente se recorre en iteración una enumeración declarada mediante una instrucción.

VB
Public Enum Mammals
    Buffalo
    Gazelle
    Mongoose
    Rhinoceros
    Whale
End Enum


Public Sub ListSomeMammals()
    For mammal As Mammals = Mammals.Gazelle To Mammals.Rhinoceros
        Debug.Write(mammal.ToString & " ")
    Next
    Debug.WriteLine("")
    ' Output: Gazelle Mongoose Rhinoceros
End Sub



En el ejemplo siguiente, los parámetros de instrucción usan una clase que tiene sobrecargas de operador +para -los >= operadores, <= , y.

VB
Private Class Distance
    Public Property Number() As Double

    Public Sub New(ByVal number As Double)
        Me.Number = number
    End Sub

    ' Define operator overloads to support For...Next statements.
    Public Shared Operator +(ByVal op1 As Distance, ByVal op2 As Distance) As Distance
        Return New Distance(op1.Number + op2.Number)
    End Operator

    Public Shared Operator -(ByVal op1 As Distance, ByVal op2 As Distance) As Distance
        Return New Distance(op1.Number - op2.Number)
    End Operator

    Public Shared Operator >=(ByVal op1 As Distance, ByVal op2 As Distance) As Boolean
        Return (op1.Number >= op2.Number)
    End Operator

    Public Shared Operator <=(ByVal op1 As Distance, ByVal op2 As Distance) As Boolean
        Return (op1.Number <= op2.Number)
    End Operator
End Class


Public Sub ListDistances()
    Dim distFrom As New Distance(10)
    Dim distTo As New Distance(25)
    Dim distStep As New Distance(4)

    For dist As Distance = distFrom To distTo Step distStep
        Debug.Write(dist.Number.ToString & " ")
    Next
    Debug.WriteLine("")

    ' Output: 10 14 18 22 
End Sub








Comentarios

Publicar un comentario