Loops: Difference between revisions
>Mindraker No edit summary |
>Mindraker |
||
Line 47: | Line 47: | ||
== The while condition == | == The while condition == | ||
The while loop will evaluate the condition to see if it is true or false. If it is false, the loop will end. If it is true, the body of the loop will be executed, and the true/false condition will be reevaluated. <b>It is critically important to have a wait() statement in a while loop, otherwise your program can freeze up.</b> | The <b>while</b> loop will evaluate the condition to see if it is true or false. If it is false, the loop will end. If it is true, the body of the loop will be executed, and the true/false condition will be reevaluated. <b>It is critically important to have a wait() statement in a while loop, otherwise your program can freeze up.</b> | ||
Line 61: | Line 61: | ||
As you can see in the above script, as long as i is less than 10, it will print the statement that i < 10. Once i has been incremented to a value equal to 10 (namely, 10), the while loop will end, and the final line will print that i=10. | As you can see in the above script, as long as i is less than 10, it will print the statement that i < 10. Once i has been incremented to a value equal to 10 (namely, 10), the while loop will end, and the final line will print that i=10. | ||
If you have a while or a for loop that otherwise won't end, you can program it to end with the <b>break</b> command: | |||
<pre> | |||
while true do | |||
print("hi mom!") | |||
wait() | |||
break -- this forces the loop to end | |||
end | |||
</pre> | |||
<pre> | |||
for i = 1, 100000000 do | |||
print("hi mom!") | |||
wait() | |||
break -- this forces the loop to end | |||
end | |||
</pre> | |||
Both of these loops only run once, and print "Hi mom" once. This is somewhat sloppy programming, however. | |||
== See Also == | == See Also == |
Revision as of 21:34, 3 October 2008
Introduction
The goal of this tutorial is to introduce you to the for loop and the while loop. It is intended for beginners. Please consult Your first script if you haven't already done so to familiarize yourself with Roblox Studio.
At the end of this tutorial, you should:
- Know what a for loop does
- Know what a while loop does
- Be able to use both a for and a while loop in a basic script
The for loop
The for loop is a way of running a command or set of commands a set number of times. For example, if you know you want to print "Hello Mom!" ten times, then you can use the for loop:
for i=1,10 do print("Hello Mom!") end
In the for command, you see two numbers: 1, which is the starting value, and 10, which is the ending value. The loop will run from 1 to 10, and print "Hello Mom!" once per each number between 1 and 10 -- 10 times.
Lua will assume you are going to be adding positive numbers. If you want to get fancy, such as subtracting numbers, or adding decimals, you have to specify this as follows:
for i=10,1, -1 do print(i) end
Notice that we have specified that we want to count downwards from 10 to 1, and we are subtracting 1 number every time. The output will be 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
Another example, but with decimals:
for i=1,10, .5 do print(i) end
This will count upwards from 1 to 10 by halves.
The while condition
The while loop will evaluate the condition to see if it is true or false. If it is false, the loop will end. If it is true, the body of the loop will be executed, and the true/false condition will be reevaluated. It is critically important to have a wait() statement in a while loop, otherwise your program can freeze up.
local i = 1 while i < 10 do wait() print(i,"< 10") i = i + 1 end print (i,"= 10")
As you can see in the above script, as long as i is less than 10, it will print the statement that i < 10. Once i has been incremented to a value equal to 10 (namely, 10), the while loop will end, and the final line will print that i=10.
If you have a while or a for loop that otherwise won't end, you can program it to end with the break command:
while true do print("hi mom!") wait() break -- this forces the loop to end end
for i = 1, 100000000 do print("hi mom!") wait() break -- this forces the loop to end end
Both of these loops only run once, and print "Hi mom" once. This is somewhat sloppy programming, however.