VB.NET For Loops

Array Collections File Keyword String Cast Class Console Data Dictionary Enum Exception If Interface Lambda LINQ List Loop Nothing Number Process Property Regex Select Sort Split StringBuilder Structure Sub Time Windows

Arrow indicates looping

Loops. A loop executes statements repeatedly. It often has an upper and lower bound. The For-loop proceeds through a range of values. A step indicates the progression.


Loop

Other loops, such as While, continue until a condition is met. And For-Each requires a collection.
In complex loops,
where the end is not yet known,
While is best.

For EachWhileDo WhileDo Until
Important

For-loop. This example uses the lower bound 0 and the upper bound 5 in the For-loop statement. Please remember that the two bounds are inclusive.

Inclusive:This means all the numbers in the range, including 0 and 5, will be reached.

Tip:In this example, we see the Exit For statement. This statement breaks out of the enclosing For-loop.

Tip 2:Exit works in all loops and Subs. Please see the detailed information about Exit.

Exit
Based on:

.NET 4.5

VB.NET program that uses For

Module Module1
    Sub Main()
	' This loop goes from 0 to 5.
	For value As Integer = 0 To 5
	    ' Exit condition if the value is three.
	    If (value = 3) Then
		Exit For
	    End If
	    Console.WriteLine(value)
	Next
    End Sub
End Module

Output

0
1
2
Steps

For step. Here we want to decrement the counter variable instead of increment it. In other words, we go down not up. We start at 10 and then continued own in steps of 2 to 0.

Also:The Step keyword is used near the end of the For-statement. A step is the delta each loop iteration will have.

So:If you want to decrement by 1 each time, you can use -1. If you want to increment by 1, use 1.

VB.NET program that uses For Step

Module Module1
    Sub Main()
	' This loop uses Step to go down 2 each iteration.
	For value As Integer = 10 To 0 Step -2
	    Console.WriteLine(value)
	Next
    End Sub
End Module

Output

10
8
6
4
2
0
Copyright

Nested loops. In many programs, nested loops are essential. In a For-loop, we uniquely name the iteration variable. And we reference all iteration variables (row, column) in an inner block.

VB.NET program that uses nested loops

Module Module1
    Sub Main()
	' Use a nested For-loop.
	For row As Integer = 0 To 2
	    For column As Integer = 0 To 2
		Console.WriteLine("{0},{1}", row, column)
	    Next
	Next
    End Sub
End Module

Output

0,0
0,1
0,2
1,0
1,1
1,2
2,0
2,1
2,2
String face

String Chars. The For and For-Each loops can be used on String variables. This gives us a way to check, or process, each character in the Object data.

For each:The For-Each loop can also be used on Strings. When you do not need the index, For-Each is a better, cleaner choice.

Loop Over String
VB.NET program that uses For loop on String

Module Module1
    Sub Main()
	Dim value As String = "cat"

	' Start at zero and proceed until final index.
	For i As Integer = 0 To value.Length - 1
	    ' Get character from string.
	    Dim c As Char = value(i)

	    ' Test and display character.
	    If c = "c" Then
		Console.WriteLine("***C***")
	    Else
		Console.WriteLine(c)
	    End If
	Next
    End Sub
End Module

Output

***C***
a
t
Two

Adjacent indexes. Often in For-loops, we need adjacent indexes. We can start at the second index (1) and then access the previous element each time, getting all pairs.

Tip:With this For-loop, we could check for duplicates in a sorted array, or repeated values in any array.

VB.NET program that uses For, adjacent indexes

Module Module1
    Sub Main()
	Dim value As String = "abcd"

	' Start at one so the previous index is always valid.
	For i As Integer = 1 To value.Length - 1
	    ' Get adjacent characters.
	    Dim c As Char = value(i - 1)
	    Dim c2 As Char = value(i)
	    Console.WriteLine(c & c2)
	Next
    End Sub
End Module

Output

ab
bc
cd
Long type

Long, non-integer indexes. The For-loop supports non-integer indexes like Long, Short and UShort. Char is not supported. Here we use For with a Long index.

VB.NET program that uses Long index

Module Module1
    Sub Main()
	' Loop over last three Longs.
	For d As Long = Long.MaxValue To Long.MaxValue - 2 Step -1
	    Console.WriteLine(d)
	Next
    End Sub
End Module

Output

9223372036854775807
9223372036854775806
9223372036854775805
Iterator

Iterator, yield. A function can be marked as an Iterator. In an Iterator, we yield values. We call an Iterator in a loop and it sequentially returns new values.

Iterator
Keyword: keywords direct program behavior

Code. The For-loop is a core looping construct in the VB.NET language. It provides a way to explicitly specify the loop bounds. And thus it often leads to more robust code.


The VB.NET programming language

Fewer bugs. With the for-keyword, fewer careless bugs may occur. Boundaries are clear, well-defined. Errors are often caused by incorrect loop boundaries.

VB.NET