Counting with For...Next
The For...Next loop repeats a block a known number of times using a counter variable, a starting value, an ending value, and an optional Step increment. For i As Integer = 1 To 10 counts upward by 1 by default, while adding Step -1 or Step 2 changes the direction or increment size. The loop variable is automatically incremented after each iteration and the loop terminates once it passes the ending value specified after To.
Cricket analogy: A bowler delivering an over runs a For...Next loop from ball 1 To 6, incrementing by Step 1 after each delivery, and the over automatically ends once the sixth ball has been bowled, just like the loop terminating after the To value.
While and Do Loops for Condition-Based Repetition
When the number of iterations isn't known in advance, While...End While or Do...Loop repeat based on a Boolean condition instead of a counter. Do While checks the condition before each iteration (possibly running zero times), Do...Loop While checks it after (guaranteeing at least one run), and Do Until / Do...Loop Until repeat while a condition is False rather than True, which is often clearer when the natural phrasing is a stopping condition rather than a continuing one.
Cricket analogy: A team batting second runs a Do While loop: Do While runsNeeded > 0 And wicketsRemaining > 0, chasing the target ball by ball, and the innings only ends once either the run target is met or all wickets fall, whichever condition breaks first.
Exit and Continue Statements
Exit For, Exit Do, and Exit While immediately terminate the enclosing loop regardless of its condition, useful for stopping early once a search finds what it needs. Continue For, Continue Do, and Continue While instead skip the rest of the current iteration's body and jump straight to the next evaluation of the loop, which is handy for filtering out cases without wrapping the remaining logic in an extra If block.
Cricket analogy: A fielder chasing a ball to the boundary uses Exit For logic: once they touch the rope, For i As Integer = 1 To 100 stops immediately via Exit For, because continuing to run further steps toward an already-reached boundary is pointless.
Iterating Collections with For Each
For Each...Next iterates over every element in a collection or array without needing an index counter, which is both safer and more readable when you don't need to modify the collection's size during iteration. The syntax For Each item As String In names ... Next automatically handles advancing through arrays, List(Of T), Dictionary(Of TKey, TValue) (yielding KeyValuePair entries), and any type implementing IEnumerable, making it the preferred loop for straightforward traversal.
Cricket analogy: A scorer tallying a scorecard runs For Each batsman In battingOrder, processing each player's individual score one at a time without needing to track a numeric index, just reading through the lineup in order.
Module LoopsDemo
Sub Main()
' For...Next with Step
For i As Integer = 10 To 1 Step -1
Console.WriteLine($"Countdown: {i}")
Next
' Do While loop
Dim attempts As Integer = 0
Do While attempts < 3
Console.WriteLine($"Attempt {attempts + 1}")
attempts += 1
Loop
' Exit For and Continue For
Dim numbers() As Integer = {2, 4, 7, 8, 10, 13}
For Each n As Integer In numbers
If n Mod 2 <> 0 Then
Continue For ' skip odd numbers
End If
If n > 9 Then
Exit For ' stop once we exceed 9
End If
Console.WriteLine($"Even number: {n}")
Next
End Sub
End ModuleUse For Each instead of a For...Next with manual indexing whenever you don't need the index itself — it's less error-prone (no off-by-one mistakes) and works uniformly across arrays, List(Of T), and any IEnumerable collection.
Do not modify a collection's size (adding or removing items) while iterating over it with For Each — this throws an InvalidOperationException in .NET. If you need to remove items conditionally, iterate over a copy with .ToList(), or use a traditional For...Next loop counting downward from the last index.
- For...Next repeats a known number of times using a counter, start value, end value, and optional Step increment.
- Do While/Until and While loops repeat based on a condition rather than a fixed count, checked before or after the body depending on the form used.
- Exit For, Exit Do, and Exit While terminate a loop immediately; Continue For, Continue Do, and Continue While skip to the next iteration.
- For Each iterates every element of a collection or array without requiring a manual index counter.
- Do...Loop While/Until guarantees at least one execution since the condition is checked after the body runs.
- Never resize a collection while iterating it with For Each; iterate a copy or use an indexed loop instead.
- Choosing the right loop type (For, While, Do, For Each) depends on whether the iteration count is known in advance.
Practice what you learned
1. What does Step -1 do in a For...Next loop?
2. Which loop guarantees the loop body executes at least once?
3. What is the effect of Continue For inside a For Each loop?
4. Why should you avoid removing items from a List(Of T) while iterating it with For Each?
5. Which statement immediately terminates a Do loop regardless of its condition?
Was this page helpful?
You May Also Like
Conditionals in VB.NET
Learn how to control program flow in VB.NET using If...Then...Else, Select Case, and logical operators to make decisions based on data.
Subs and Functions in VB.NET
Understand how to organize reusable code in VB.NET using Sub and Function procedures, including parameters, return values, and overloading.
Error Handling with Try/Catch
Learn structured exception handling in VB.NET using Try, Catch, Finally, and Throw to write robust code that gracefully handles runtime errors.
Related Reading
Related Study Notes in Programming
Browse all study notesApache Spark Study Notes
Programming · 30 topics
ProgrammingApache Flink Study Notes
Programming · 30 topics
ProgrammingHadoop Study Notes
Programming · 30 topics
ProgrammingSnowflake Study Notes
Programming · 30 topics
ProgrammingApache Airflow Study Notes
Programming · 30 topics
Programmingdbt (Data Build Tool) Study Notes
Programming · 30 topics