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
Buena información
ResponderBorrarQue excelente