Control
Statements - Loops.
This lesson shows you how to use vb looping statements.
In vb, there are four iteration constructs rather than
three. There are familiar for, do, while loops
and a new one from Visual basic, foreach.
Let us start with while loop.
The Do and While
Statements.
List: 1 WhileTest.vb.
'find out the number of
digits in a given number.
Imports
System
Class WhileTest
Public
Shared
Sub Main()
Dim i
As
Integer = 123
Dim count
As
Integer = 0
Dim n
As
Integer = i
'while loop may execute
zero times.
While i > 0
i = i / 10
End
While
Console.WriteLine("Number {0} contains {1}
digits.", n, count)
End
Sub
'Main
End
Class
'WhileTest
The above code shows simple while loop, which
finds out the number of digits in a number. for a given
number i = 123, the loop will execute tree times and
hence the value of count will be three at the end of the
while loop.
The above code has one logical
flaw. If the number i is set to 0, the output of the
code will be "Number 0 contains 0 digits."
Actually number 0 is of one digit. Since the condition
for the while loop i>0 is false from beginning for the
value i=0, the while loop won't execute any time and
count will be zero. here is a solution:
List: 2 DoTest.vb.
'find out the number of digits in a given number.
Imports System
Class DoTest
Public
Shared
Sub Main()
Dim i
As
Integer = 0
Dim count
As
Integer = 0
Dim n
As
Integer = i
Do
i = i / 10
Loop
While i > 0
Console.WriteLine("Number {0} contains {1} digits.", n,
count)
End
Sub
'Main
End
Class
'DoTest
The Do-While construct checks condition in the end of
the loop. Thus Do-while loop will execute atleast once
even though the condition to be checked is false from
beginning.
The For Statement.
//For loop with break and
continue statements.
List: 3 Fortest.vb.
Imports
System
Class ForTest
Public
Shared
Sub Main()
Dim i
As
Integer
While i < 20
If i = 10
Then
Exit While
End If
If i = 5 Then
GoTo ContinueWhile1
End
If
Console.WriteLine(i)
ContinueWhile1:
End
While
End Sub
'Main
End
Class
'ForTest
The For loop is good when we
know how many times the loop needs to be executed. the
output of the above code will be:
0
1
2
3
4
6
7
8
9
isn't it self explanatory? when i becomes 5, the loop
will skip over the remaining statements in the loop and
go back to the post loop action. thus 5 is not part of
the output. when i becomes 10, control will break out of
the loop.
The foreach statement.
This statement allows to
iterate over the elements in arrays and collections.
here is a simple example.
List: 4 ForEach.vb.
'foreach loo
Imports System
Class ForEach
Public
Shared
Sub Main()
Dim a
As
String() = {"Chirag",
"Bhargav", "Tejas"}
Dim b
As
String
For Each b
In a
Console.WriteLine(b)
Next b
End
Sub
'Main
End
Class
'ForEach
Within the foreach loop
parenthesis , the expression is made up of two parts
separated by keyword in. The right hand side of
in is the collection and left hand side is the
variable with type identifier matching to whatever type
the collection returns.
Every time the collection is
queried for a new value. As long as the collection
returns value, the value is put into the variable and
expression will return true. when the collection is
fully traversed, the expression will return false and
control will be transferred to the next statement after
a loop.