100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Loops in VB.NET

Master repetitive control flow in VB.NET using For...Next, While, Do loops, and For Each, including loop control statements like Exit and Continue.

Control Flow & ProceduresBeginner9 min readJul 10, 2026
Analogies

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.

vbnet
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 Module

Use 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

Was this page helpful?

Topics covered

#Programming#VBNETStudyNotes#LoopsInVBNET#Loops#NET#Counting#Next#StudyNotes#SkillVeris#ExamPrep