This pseudo code will print out: 1, 1, 2, 3, 5, 8, 13, 21, ... as expected. But now how do we tell a Visual Basic program how to do this? The answer lies in using loops.
Loops provide the ability to repeatedly execute the same block of code, and to each time change values such that each run through the loop produces different results. Visual Basic provides four main kinds of loops: the classic Do-Loop, the Do-Until Loop, the Do-While Loop, and the For-Next Loop.
Do-Loops
The most basic form of loop in Visual Basic is the Do-Loop. Its construct is very simple:
Do
(Code to execute)
Loop
This, quite simply, executes the block of code, and when it reaches Loop, returns to the beginning of the Do Loop and executes the same block of code again. The same block of code will be repeatedly executed until it is told to stop executing. So let's try to apply this to our problem of generating the Fibonacci series:
And, believe it or not, this code works! Well, sorta. If you try to run this code, it will indeed generate the Fibonacci series; however, it will continually generate and print out the next number infinitely--or, in this case, until it reaches an overflow error. This is known as the problem of the infinite do-loop, one that all programmers will experience, and some quite frequently.
Exit Do
So we clearly need some way to escape from the Do-Loop. You could, of course, simply End the program once you have calculated enough values, but what if you still need to perform tasks after you're done calculating? The answer is to use the Exit Do statement. Whenever your program reaches an Exit Do statement within a loop, it will exit the current loop.
So, let's try a somewhat different approach to the Fibonacci problem. We decide that we want to calculate only eight values of the Fibonacci series, so we'll keep a counter and increment it each time throughout the loop. Then, once the counter reaches eight, we'll exit the loop.
And now we're talking! This program successfully computes and prints out the first eight values of the Fibonacci series.
Do Until
As an alternative approach to nesting an If-Statement inside the loop, and invoking Exit Do once we're done looping, Visual Basic provides a Do Until statement. Its syntax is the following:
Do Until (Expression)
(Code to execute)
Loop
(Expression) can be any legal logical expression that we wish to evaluate to determine whether or not to exit the loop. Each time the program reaches Loop it will evaluate this expression. If the expression is True, it will exit the loop for us, but otherwise it will continue looping.. So let's try rewriting our Fibonacci program to use a Do-Until loop instead of Exit Do.
Here we've replaced the hideous If cnt >= 8 Then ... Else: Exit Do with a very simple Until cnt >= 8. We must, however, still be sure to increment our counter every time through the loop, or else the Until expression will never be True, resulting in an infinite Do Loop.
Do While
In the place of Do Until, you can also use Do While. Its syntax is the following:
Do While (Expression)
(Code to execute)
Loop
(Expression) can be any legal logical expression that we wish to evaluate to determine whether or not to exit the loop. Each time the program reaches Loop it will verify that this expression is True, and if it is False, it will exit the loop for us. Thus, instead of exiting when an expression is True, it now exits only once this expression is false. Let's try rewriting our Fibonacci program to use a Do-While loop instead of a Do-Until loop.
For-Next Loops
In situations where you merely want to run the loop a predefined number of times, it can become quite tiresome to have to create and manage a counter for each loop, which is why we also have something called a For-Next Loop. This kind of loop allows you to specify a counter, to tell it to count from one number to another each time through the loop, and to exit once the counter has reached its upper limit. The syntax is as follow:
Dim I As IntegerWe used the variable name "I" above, as it is the most common name used for For-Loops; however, you can use any variable name you want, so long as the variable is of the type Integer. Now, let's improve our Fibonacci program even further:
In the example above, we first dimensioned cnt as an Integer, and then, in the declaration of the For-Next loop, set its value to 1. Each time through the loop, the value of cnt was incremented by 1 until it reached 8, at which point the loop was executed.
Exit For
As with Do Loops, there is a statement that can be used to exit a For-Next loop, and it is called Exit For. Simply invoke this statement anywhere within a For-Next loop and the current loop will be exited.
Step
By default, the variable used in the declaration of the For-Next loop is incremented by 1 each time through the loop; however, if you want to increment this value by a different amount each time through the loop, you can simply append Step (Integer) to the end of the For-Next loop declaration. If, for instance, we wanted to print out every even number counting backward from 20 to 0, we could do this using the following code:
So there you have it now you can use loops all over your Visaul Basic 6 programs. These are one of the most useful tools you have. You might want to bookmark this tutorial so that later you can reference back to this great VB6 loop examples. If you have any questions or comments please post them below.
Comments
vb
program for printing tables from 1-10 on a label using for loop?
please reply.
vb..
olivera
do you mean??
dim i as integer
i = val(text1.text)
for i = val(text.text) to 20
label.caption i, "*"
next
is that what you mean??.... i can understand your question... im sorry :) i wish that will help you
VB 6.0
I am working on a grading system. how can i change the percentage if it is already encoded?
Fibonacci Series!!
please help me guys!! please make me a program which includes FIBONACCI SERIES and looping!!... please please!! i need it for my assignment and i am quite new with vb!!..... :(( HEELLLPPP MMEEE PLEASEEEEE..
Fibonacci Series!!
olivera
i wish this will help you...
private sub cmdfibo_click
Dim fibonacci(10) As Long
Dim i As Integer
fibonacci(1) = 1
fibonacci(2) = 1
For intCount = 3 To 10
fibonacci(i) = fibonacci(i - 1) + fibonacci(i - 2)
Next i
For i = 1 To 10
picturebox.Print fibonacci(i)
Next i
End Sub
please give me a program
please give me a program using a Fibonacci series! with looping! i am new to programming!! pleaseee!!!!
btw, i am using vb.
Im trying to figure it out?
Hi how can i solve this problem . Example :- if i set up a number of folders that each contain a number of dummy photograph files. (e.g. simple Word files).The names of these dummy files have to be the names allocated to the imagined photographs.And how to display of where photographs that meet the given criteria can be found?
The user interface must consist of two forms and One to allow Mark to enter the details he has decided into the text file and maintain that information.One to request the paths to photographs that meet selected simple criteria and display these paths in a list. it is possible to append to an existing text file, any significant updating of a serial file by programming VB 2008 implies that the file has to be rewritten.
plzz help
plz help . how to make find sum of first 10 natural numbers, using for next looping
can u help me under stand a
can u help me under stand a code whose output is:
1
12
123
1234(code finished)
Need to derive output without using NESTED Loops and IF Conditions.
try this.. for x = 1 to 4 y
try this..
for x = 1 to 4
y = 1
for y = x to 50 - x
picture1.print " ";
next y
z = 1
for z = 1 to x
picture1.print x;
next z
picture1.print
next x
help.
please code a program that will accept 10 numbers and finds the average making use of the for and do statements. in[put box and message box commands must be used.
HELPPP WITH VB
Ho how do i code a program to output the intials of a name only using one textbox. For example, i input Bill James into one textbox I want my label to output BJ. I can't get figure it out. Please, help would be greatly appreciated.
for
Output the initials
Hi there! Take a look at this example:
Private Sub cmdOutputInitials_Click()
Rem Declarations of the inside procedure variables
Dim sFirstInitial As String, sSecondInitial As String, _
sTempInput As String
Dim lSpace As Long
Rem Inside procedure variables
'1.)
Rem Get the first letter of our txtInput textbox value _
and set it into sFirstInitial string variable
sFirstInitial = Left$(txtInput.Text, 1)
'2.)
Rem Get the second space in the txtInput textbox _
and set it into lSpace long variable
lSpace = InStr(txtInput.Text, " ")
'3.)
Rem Get the txtInput value from the right and set it into _
sTempInput string variable
sTempInput = Right$(txtInput.Text, Len(txtInput.Text) - lSpace)
'4.)
Rem Get the first letter of our sTempInput string variable value, _
and set it into sSecondInitial string variable
sSecondInitial = Left$(sTempInput, 1)
'5.)
Rem Finally Get and concate the sFirstInitial and sSecondInitial _
string variables values and set it into _
lblOutput caption
lblOutput.Caption = sFirstInitial + sSecondInitial
End Sub
I hope this can help.
Regards.
tobz
plz help...
write a program to input two one-dimensional array namely x and y with five values. find sum of their elements and store into third array namely z
plz solve my problem...im thank full to u
write a program to input two dimensional array of order 3*3 and print sum of all the rows
repeat loop
write a program using conditional operator to determine if a number is divisible by 5.Display the message"Divisible by 5" or "Not divisible by 5" accordingly......plzzz help someone
input number to verifie as
input number to verifie as Number_Text
output number to verifie as Result_Text
Program in vb6
If Right(Int(Number_Text)) = "0" Or Right(Int(Number_Text)) = "5" Then
Result_Text = Number_Text & " is Divisible by 5"
Else
Result_Text = Number_Text & " is Not divisible by 5"
Endif
help..........
help i dont noe any thing in looping and tomorrow is my x-am cud uhelp me under stand looooping???
pls.............
thanx
pls do now
Tnx for this great VB 6.0
Tnx for this great VB 6.0 tutorial site!
I'm learning much from this site than our instructor.
solve my program with do and loop
write a program that get the number that been like that at the first mod of this number should be to this number 0(n mod n=0)
and been between 2 to 500 at last show on one textbox
loop codes(for)
can u help me under stand a code whose output is:
1
12
123
1234(code finished)
and this is displayed on the screen with a single time click on a command button
this could be done easily
this could be done easily done with strings
strA = ""
for intX = 1 to 5
print strA
strA = strA & Cstr(intX)
next intX
OR
intA = 0
for intX = 1 to 4
intA = intA*10 + intX
print intA
next intX
help me pls...
i'm working on programming where cashier can click on the system when customer have order the water...
i use checkbox, radiobox and button in my programming... and textbox to appear my result from checkbox, radiobox and button. but when i want to repeat second time, can't appear the output.... what script that should i use?? pls advice
(below is the coding )
Public Class FormFlavor
Dim ckName As String, RdName As String
Dim x As String, y As String, z As String
Dim result As Double
Dim juice As Double, Blender As Double, Flavor As Double
Private Sub FormFlavor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub ckStraw_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckStraw.CheckedChanged
If ckStraw.Visible = True Then
ckName = "You have selete Strawberry"
ElseIf ckStraw.Visible = False Then
ckName = ""
End If
TxtOrder.Text = ckName
End Sub
Private Sub ckVanila_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckVanila.CheckedChanged
If ckVanila.Visible = True Then
ckName = "You have selete Vanila"
ElseIf ckVanila.Visible = False Then
ckName = ""
End If
TxtOrder.Text = ckName
End Sub
Private Sub ckYam_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckYam.CheckedChanged
If ckYam.Visible = True Then
ckName = "You have selete Yam"
ElseIf ckYam.Visible = False Then
ckName = ""
End If
TxtOrder.Text = ckName
End Sub
Private Sub RdGreen_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdGreen.CheckedChanged
If RdGreen.Visible = True Then
RdName = "green tea RM1.80"
ElseIf RdGreen.Visible = False Then
RdName = ""
End If
TxtOrder.Text = RdName
End Sub
Private Sub RdMilk_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdMilk.CheckedChanged
If RdMilk.Visible = True Then
RdName = "milk tea RM1.80"
ElseIf RdMilk.Visible = False Then
RdName = ""
End If
TxtOrder.Text = RdName
End Sub
Private Sub RdRed_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdRed.CheckedChanged
If RdRed.Visible = True Then
RdName = "red tea RM1.80"
ElseIf RdRed.Visible = False Then
RdName = ""
End If
TxtOrder.Text = RdName
End Sub
Private Sub RdShake_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdShake.CheckedChanged
If RdShake.Visible = True Then
RdName = " Milk Shake RM 2.50"
ElseIf RdShake.Visible = False Then
RdName = ""
End If
TxtOrder.Text = RdName
End Sub
Private Sub RdSmoo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdSmoo.CheckedChanged
If RdSmoo.Visible = True Then
RdName = " Smoothies RM 2.50"
ElseIf RdSmoo.Visible = False Then
RdName = ""
End If
TxtOrder.Text = RdName
End Sub
Private Sub RdSoda_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdSoda.CheckedChanged
If RdSoda.Visible = True Then
RdName = " Italian Soda RM 2.50"
ElseIf RdSoda.Visible = False Then
RdName = ""
End If
txtOrder.Text = RdName
End Sub
Private Sub RdYogurt_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdYogurt.CheckedChanged
If RdYogurt.Visible = True Then
RdName = " Yogurt RM 2.50"
ElseIf RdYogurt.Visible = False Then
RdName = ""
End If
TxtOrder.Text = RdName
End Sub
Private Sub BtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDelete.Click
txtOrder.Clear()
End Sub
Private Sub txtOrder_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtOrder.TextChanged
If BtnJuice.Visible = True Then
txtOrder.Text = ckName & y
ElseIf BtnJuice.Visible = False Then
txtOrder.Text = ckName & RdName
End If
End Sub
Private Sub BtnJuice_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnJuice.Click
juice = 2.3
If BtnJuice.Visible = True Then
y = " Juice RM 2.30"
ElseIf BtnJuice.Visible = False Then
y = ""
End If
txtOrder.Text = y
End Sub
End Class
help and support system
please send us email on how to do the help and support system in windows xp using the VB6.0
this is our project...
please help us!!!
help, asap!!!!
we have a project in object oriented programming.... We are about to create a program about help and support in windows xp using Visual Basic 6.0..hmn, please help us on how to do this.
thnx:)
loop statement for our project's accountnumber
we need help...pls help us to make a code using loop statement...we need an account number in our project where the system will automatically compute for the account number of a new member..for example ACC-0001....we really need this please do help us...we will wait for your reply...
gud evening
Assume FILE1 & FILE2 are sequential files containing numeric data.Based on the following program segment,what would be a good use for it?
Open "FILE1" for Input As # 1
Open "FILE2" for Input As # 2
C = 0
Do While Not EOF (1) And Not EOF (2)
Input # 1, num 1
Input # 2, num 2
If num1 <> num2 Then
C=C+1
End If
Loop
Close # 1,# 2
help!!!
i have these projects that i can't finish
*find the sum of the series 1 + 1/2 + 1/3 + 1/4 ... 1/100
*reads an integer value and displays the sum of all the even integers starting from 2 and the input value, inclusive. Display an error message if the input value is less than 2.
Salary Computing...
I'm working on a program that would compute the salary of the different workers in a company. It has radio buttons in it, and I want the figures to all get erased when someone selects a different option. I need some sort of a reset button, but I have absolutely no idea how. I know i would need some sort of loop....
How can i solve this problem?
Write VB Program that will compute for the average rating of a teacher given by 10 students using Do while Loop
Thank you. Good Tutorial!!
Thank you.
Good Tutorial!!
Loops Within Loops?
I'm trying to fill a two-dimensional array with numbers. The last time I tried this was in QBASIC, and the simple way of doing that was to put one loop inside another -- the inner loop fills a row of data, completes, and then the outer loop runs the inner loop again, this time for the next row down. Here is what the code would look like in VB:
Option Explicit
Dim intN As Integer
Dim aintDiceRoll(1) As Integer
Dim aintTotal(1 To 6) As Integer
Dim aintResult(1 To 8, 1 To 6) As Integer
For aintDiceRoll(0) = 1 To 6
For aintDiceRoll(1) = 1 To intN
aintResult(aintDiceRoll(1), aintDiceRoll(0)) = Int(6 * Rnd + 1)
Next aintDiceRoll(1)
Next aintDiceRoll(0)
Yet for some reason this gives me errors... Is there a way to get around this, or should I just copy the inner loop code six times (since I know I want the outer loop to run six times)?
computing
I am designing a program to calculate whether or not someone has passed or failed their language course depending on the mark out of 30 that they get. But i can't seem to add a loop in if they enter a number that is not betweem 0 and 30.
Please help!
(here is the program so far):
'Declare variables
Dim Frenchmark As Integer
Dim Germanmark As Integer
Dim Spanishmark As Integer
Dim Totalmark As Integer
Dim Result As String
Dim Percentage As Integer
'Get the users French mark
Do
Frenchmark = InputBox("Please enter the pupils french mark")
If Frenchmark > 30 Then
MsgBox ("Please enter a whole number between 0 and 30")
ElseIf Frenchmark < 0 Then
MsgBox ("Please enter a whole number which is between 0 and 30")
End If
Loop Until Frenchmark >= 0 & Frenchmark < 31
'Get the users German mark
Do
Germanmark = InputBox("Please enter the pupils german mark")
If Germanmark > 30 Then
MsgBox ("Please enter a whole number between 0 and 30")
ElseIf Germanmark < 0 Then
MsgBox ("Please enter a whole number which is between 0 and 30")
End If
Exit Do
Loop Until Frenchmark >= 0 & Germanmark < 31
'Get the users Spanish mark
Do
Spanishmark = InputBox("Please enter the pupils spanish mark")
If Spanishmark > 30 Then
MsgBox ("Please enter a whole number between 0 and 30")
ElseIf Spanishmark < 0 Then
MsgBox ("Please enter a whole number which is between 0 and 30")
End If
Loop Until Spanishmark >= 0 & Spanishmark < 31
'Get the users total mark
Totalmark = Frenchmark + Germanmark Or Frenchmark + Spanishmark
Percentage = Totalmark / 90 * 100
'Decide if user has passed or failed course
If Frenchmark < 15 Then
Result = "Fail"
End If
If Frenchmark + Germanmark >= 30 Then
Result = "Pass"
Else
Result = "Fail"
End If
If Frenchmark + Spanishmark >= 30 Then
Result = "Pass"
Else
Result = "Fail"
End If
'Display the results on the form in text boxes
txtResult.Text = Result
txtPercentage.Text = Percentage
End Sub
PLZ HELP ME ON HOW TO CREATE A SIMPLE WATER BILLING SYSTEM
HI!
I WOULD LIKE TO CREATE A SIMPLE BILLING SYSTEM THAT CAN CALCULATES THE FIGURES AND THEN PRINTS THE RESULTS AS WELL AS WHICH CAN STORE THE BILLS FOR LATER PREVIEWING,PLZ HELP,HELP GUIDE PLZ.It`s me Said,from TANZANIA EAST AFRICA.
Do While
Hello!
I'm trying to figure out how to keep a running total of the sums of the numbers from 1 to the number entered within the input box. It is a Do While statement that has me stumped.
Thanks!
Fibbonicci Series
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim term1, term2, term3, n As Integer
n = Val(InputBox("Enter no. of terms"))
term1 = 0
term2 = 1
For x = 1 To n
Debug.Print(term2)
term3 = term1 + term2
term1 = term2
term2 = term3
Next
End Sub
Fibonacci Series
correct fibonacci series is
private sub form1_Activate()
dim x,y,n as integer
x=0
y=1
print x
print y
n=val(inputbox("enter no. of terms"))
for i=1 to n
x=x+y
y=y+x
print x
print y
next
thankyou so much
thankyou so much
perhaps there is a problem
perhaps there is a problem with the code on this page, just insert the satement
y=1
after y has been declared..
i guess it should work..
Cant get to work
OkPublic Sub Main()
Ok I Cant get the public sub main to work what do I click command1 or what ?
where to see the results
okay, the code runs, but where do i see the results? where are they printed. do i need to use MsgBox or what? and why do we need the Debug before print x
how can this problem be solved
Federal Law requires hourly employees to be paid “ time-and-a-half” for work in excess of 40hours in a week. For example, if a person’s hourly wage is $8 and worked 60 hours in a week, then his gross pay = (40*8)+(1.5*8*(60-40)) = $560
Write a program that requires as input the number of hours a person work in a given week and his/her hourly wage, and then display his gross pay
Module Module1 Sub
Module Module1
Sub Main()
Dim IntHours 'hours worked for the week
Dim IntOtHours 'just hours over 40
Dim IntPayRate 'hourly payrate
Dim IntRegPay 'pay for straight time
Dim IntOtPay = 0 'pay for OT
Dim GrossPay 'gross pay
Console.Write("Enter hours worked")
IntHours = Console.ReadLine()
Console.Write("Enter pay rate")
IntPayRate = Console.ReadLine()
If IntHours > 40 Then 'decides if OT pay is warranted
IntOtHours = IntHours - 40
IntOtPay = IntOtHours * (IntPayRate * 1.5)
IntRegPay = IntPayRate * 40
Else
IntRegPay = IntHours * IntPayRate
End If
GrossPay = IntOtPay + IntRegPay
Console.WriteLine("Regular Pay:" & IntRegPay)
Console.WriteLine()
Console.WriteLine("OT Pay:" & IntOtPay)
Console.WriteLine()
Console.WriteLine("Total:" & GrossPay)
Console.WriteLine("Press enter to exit")
Console.ReadLine()
End Sub
End Module
easy enough.
how can i solve this problem
write a visual basic program that will accept as input the price of a product,the name of the product and the quantity purchase and display the amount due less the VAT .Assuming VAT rate is 17.5%.
helpful
I thought this small tutorial was pretty helpful.
Fibonacci-Series
First I'd like to thank you guys for that awesome tutorial, keep up the good work, the tutorial is' far better than the crap we are told at our University!
But perhaps you could use another example since not everybody is familiar with the Fibonacci-Series and as a VB beginner you have to deal with two new tasks.
Thanks a lot
Um... LOL?
Um, can you actually name one person you know who doesn't know the "Fibonacci-Series"?
me! i don't know that
me! i don't know that "Fibonacci-Series"
I don't
Erm, well I don't. Haha. I'll go look it up then. :p
Anyway nice tutorial on looping.
Is it just me or is the
Is it just me or is the "For, Next" code wrong? In the initial example it properly shows going from the For command to the Next command and looping, but after the author says " now lets improve our fibonnacii sequence further" The "Next i" is missing from the code.
Bad code
I think there are a couple problems with the code on this page, but this is my first day of programming. All I know is I couldn't get it to work unless I specified the value of x as 1 and y as 0. The For-Next loop also is wrong, according to my computer. It worked in this form:
Public Sub Main()
Dim X As Integer, Y As Integer
Dim count As Integer
X = 1
Y = 0
For count = 1 To 8
Debug.Print X
X = Y + X
Y = X - Y
Next count
End Sub
Otherwise, it yelled at me for Loop without Do.
A suggestion
I think the for Next would also work this way
For count = 1 To 8
Debug.Print X
X = Y + X
Y = X - Y
Next ------------ you dont need to mention 'next count' . It would still execute.
Post new comment