Loops with Visual Basic.Net
What the heck is a loop?
A loop is a repetitive procedure that is designed to repeat a given set of instructions.
Loops are absolutely essential for getting work done. You know how computer software saves you so much time, by doing the tedious repetition of tasks? Our good hero the loop is the one to blame.
Other terms associated with loops: Looping, Iterating, Iteration, Enumerating, Enumeration, Cycling
What kind of loops can you make in Visual Basic?
GOTO
The most primitive loop (GOTO) in the basic programming language involves the use of 2 components:
- A numeric label for the parser
- A GOTO command
Example of a simple GOTO Loop
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
1: Dim Counter As Integer = 0
2: Counter = Counter + 1
3: 'You can put
4: 'code in-between
5: If Counter < 100 Then GoTo 2
6: MsgBox("We have reached " & Counter & ", so the loop is complete!")
End Sub
End Class
Never use this, there are better ways!
Do-Loop
The good ol' Do-Loop Loop, this loop has several different ways it can be used:
Do-Loop-Until
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Count As Integer = 0
Do
'You can put
'Code in here
Count = Count + 1
Loop Until Count = 100
MsgBox("We have reached " & Count & ", so the loop is complete!")
End Sub
End Class
Do-Loop-While
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Count As Integer = 0
Do While Count < 100
'You can put
'Code in here
Count = Count + 1
Loop
MsgBox("We have reached " & Count & ", so the loop is complete!")
End Sub
End Class
Do-Loop-Exit Do
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Count As Integer = 0
Do
'You can put
'Code in here
Count = Count + 1
If Count = 100 Then Exit Do
Loop
MsgBox("We have reached " & Count & ", so the loop is complete!")
End Sub
End Class
There's yet another kind of loop! For-Next
For - Next
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Result As Integer
For I As Integer = 0 To 100
'You can put
'Code in here
Result = I
Next
MsgBox("We have reached " & Result & ", so the loop is complete!")
End Sub
End Class
For-Next-Step
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Result As Integer
For I As Integer = 500 To 100 Step -2
'You can put
'Code in here
Result = I
Next
MsgBox("We have reached " & Result & ", so the loop is complete!")
End Sub
End Class
For-Next-Exit For
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Result As Integer
For I As Integer = 0 To 500000
'You can put
'Code in here
Result = I
If I = 100 Then Exit For
Next
MsgBox("We have reached " & Result & ", so the loop is complete!")
End Sub
End Class
For-Next-Continue For
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Result As Integer
For I As Integer = 0 To 200
Select Case I Mod 2
Case 1
Result = Result + 1
Continue For
End Select
'Only arrive here when I is an odd number
Next
MsgBox("We have reached " & Result & ", so the loop is complete!")
End Sub
End Class
For-Each-Next
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Array() As Integer = {25, 25, 25, 25}
Dim Result As Integer
For Each Number As Integer In Array
Result = Result + Number
Next
MsgBox("We have reached " & Result & ", so the loop is complete!")
End Sub
End Class
While
While-End While
Example
Option Strict On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Result As Integer
While Result < 100
'You can put
'Code in here
Result = Result + 1
End While
MsgBox("We have reached " & Result & ", so the loop is complete!")
End Sub
End Class
Last, but not least, I want to add a very interesting method of looping called recursion.
I first really noticed it with Euclid's algorithm for calculating the greatest common divisor of 2 numbers. So here it is, Euclid's Algorithm utilizing recursion. This function will call itself recursively until the remainder is 0, effectively creating a loop without using any of the conventional methods listed above!
Example
Function EuclidGCD(Number1 As Integer, Number2 As Integer)
Dim Remainder As Integer = Number1 Mod Number2
If Remainder = 0 Then Return Number2
Return EuclidGCD(Number2, Remainder)
End Function
Summary
There are many many uses of looping in Visual basic, and programming in general would not be complete without the ability to iterate.
- MSDN - http://msdn.microsoft.com/en-US/
- MSDN Forums - http://social.msdn.microsoft.com/Forums/en-US/categories