For loops in Lua
As an old Fortran programmer, I remember that a for loop was given a start point, an end point and a step ... and they had to be whole numbers (integers). Lua's for loops can be used that way, but they can be used a lot more flexibly too.
From, to, step for loops
Th egood news is that Lua works in double precision floats throughout, so your from, to and step can be anything you like ... and the step can go forwards or backwards. There's an example here
where I report Celsius to Fahrenheit conversions - any step you like. You'll also notice that I have specified whole numbers for the conversion factors and they work ... 9 / 5 gives a result of 1.8 in Lua, not an integer result of 1.
If you're a C, Perl, PHP or Java programmer, you'll be used to for
loops where the condition (end point) is checked every time around ... so that if the end condition is chanced within the loop, it effects the number of times that the loop runs. That's not the case with Lua which, like Fortran, decides the number of times the loop will run even before the first iteration is started. See here
for an example.
in for loops
If you use an in
style for loop, you're looping through an iteration (a set) of values or value pairs. Commonly used functions to generate these iterations are pairs
which goes thought EVERY pair of values in a table, ipairs
which only goes through the INDEXED pairs (i.e. it starts at element one, then gives elements 2, 3, etc until it finds a missing index at which point in stops, ignoring names elements and elements which are numbered but not in sequence from the start) and string.gmatch
which goes though all strings that match a pattern within an incoming longer string.
for examples of pairs and ipairs, and here
for an example of string.gfind (written 2009-10-14, updated 2009-10-17)
Associated topics are indexed underU103 - Lua - Conditionals and loops 
The goto statement in Lua - (2012-04-06) 
Python or Lua - which should I use / learn? - (2011-12-21) 
Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18) 
Lua examples - coroutines, error handling, objects, etc - (2009-10-15) 
Ternary operators alternatives - Perl and Lua lazy operators - (2009-08-12) 
Clean code, jump free (Example in Lua) - (2008-08-06) 
Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04) 
Short circuit evaluation (lazy operator) in Lua - (2008-06-22)
Some other Articles
Cant connect to local MySQL server through socket /tmp/mysql.sockRailway ArithmeticBright EyesFor loops in LuaDark to darkMaking executable binaries in Python (or Perl)Gypsy saysFamily Gathering at 404, The SpaFour aspects - Chamber, Transport, Courses and Hotel
4090 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).