Loops: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>JulienDethurens
No edit summary
>NXTBoy
Swapped while and for sections
Line 4: Line 4:
A loop is a chunk of code that is executed many times over.  There are three types of loops, for, while, and repeat.  Each one loops a block of code, but in different ways.  You will see the differences between each of the loops later on.  The reason why one would use a loop is that loops are great ways to not repeat the same code over and over.  Let's dive in!
A loop is a chunk of code that is executed many times over.  There are three types of loops, for, while, and repeat.  Each one loops a block of code, but in different ways.  You will see the differences between each of the loops later on.  The reason why one would use a loop is that loops are great ways to not repeat the same code over and over.  Let's dive in!
{{EmphasisBox|Avoid using infinite loops without any waiting. If you don't, Roblox will probably freeze.|red|dark=yes}}
{{EmphasisBox|Avoid using infinite loops without any waiting. If you don't, Roblox will probably freeze.|red|dark=yes}}
===While===
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.
[[Image:Whileflowchart.JPG]]
{{Example|<code lua>
local i = 1
while i < 10 do
  wait()
  print(i,"< 10")
  i = i + 1
end
print (i,"= 10")
</code>}}
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.
===For===
===For===


Line 39: Line 57:


This will count upwards from 1 to 10 by halves.
This will count upwards from 1 to 10 by halves.
===While===
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.
[[Image:Whileflowchart.JPG]]
{{Example|<code lua>
local i = 1
while i < 10 do
  wait()
  print(i,"< 10")
  i = i + 1
end
print (i,"= 10")
</code>}}
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.


===Repeat===
===Repeat===

Revision as of 20:23, 27 February 2012

Loops

What is a Loop?

A loop is a chunk of code that is executed many times over. There are three types of loops, for, while, and repeat. Each one loops a block of code, but in different ways. You will see the differences between each of the loops later on. The reason why one would use a loop is that loops are great ways to not repeat the same code over and over. Let's dive in!

Avoid using infinite loops without any waiting. If you don't, Roblox will probably freeze.

While

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.

Example
{{{1}}}


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.

For

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.

Example
{{{1}}}


In the for loop, 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:

Example
{{{1}}}


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:

Example
{{{1}}}


This will count upwards from 1 to 10 by halves.

Repeat

A repeat ... until statement will repeat until a certain condition is met. The body is executed at least once, because the test is performed after the body (i.e., "the process is preceding the decision"). Repeat

local i = 1
repeat
   print(i,"< 10")
   i = i + 1
until i==10
print (i, "=10")

1 < 10 2 < 10 3 < 10 4 < 10 5 < 10 6 < 10 7 < 10 8 < 10 9 < 10

10 =10

This will print i < 10 until i has reached the value of 10, at which point it will print that i = 10.

Break

If you have a while, a for, or a repeat loop that otherwise won't end, you can program it to end with the break command, so you can continue with the next part of code:

Example
{{{1}}}


These loops only run once because of the break command, and print "Hi mom" once.

Example
{{{1}}}


Notice in these three loops, something is wrong -- the loops would either take too long to end, or are neverending. We have to force them to end with break.

See Also

Programming in Lua: While

Programming in Lua: Repeat

Programming in Lua: For