TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
 Specialized Dev Zones Research Center eBook Library .NET Java C++ Web Dev Architecture Database Security Open Source Enterprise Mobile Special Reports 10-Minute Solutions DevXtra Blogs Slideshow

Language: Visual Basic
Expertise: Intermediate
Apr 7, 2000

### WEBINAR:On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning

# Use Loop Counters Even After Looping

The value of a loop counter variable is incremented one beyond the set range when the loop is completed. For example, if you use a For i = 0 to 5...Next loop, i equals 6 when all loop iterations have been completed. If you use the For...Next statement with an Exit For statement, you can use the value of the loop counter variable to determine whether a condition was met during the loop. Here's one possible application of this technique, which can be applied when you have an array of values, each element of which has a unique value:
``````
Dim sText(10) As String
Dim i As Long
' Initialize strings - A, B, C, D, ...
For i = 1 To 10
sText(i) = Chr\$(Asc("A") + i)
Next i
``````
Suppose you want to find which element, if any, has a given value. You could use a Do...Until Loop and a flag:
``````
Dim i As Long
Dim IsFound As Boolean
i = 0
Do While Not IsFound
i = i + 1
If i > 10 Then Exit Do
If sText(i) = "J" Then IsFound = True
Loop
If IsFound Then
MsgBox "Found J as element: " & i
Else
MsgBox "Could not find J"
End If
``````
Or you can use a For...Next loop without a flag:
``````
Dim i As Long
For i = 1 To 10
If sText(i) = "J" Then Exit For
Next i
If i <= 10 Then
MsgBox "Found J at element: " & i
Else
MsgBox "Could not find J"
End If
``````
This search routine is shorter and faster in the second case.
Tom Mcormick

 Submit a Tip Browse "XML" Tips Browse All Tips
Comment and Contribute

(Maximum characters: 1200). You have 1200 characters left.

Thanks for your registration, follow us on our social networks to keep up-to-date