Home Accessibility Courses Diary The Mouth Facebook Resources Site Map About Us Contact
How a for loop works Java, Perl and other languages

How a for loop worksJava, Perl, PHP, Ruby, C, C++, Tcl and many other languages support a "for" loop construct.

When your program enters the top of the loop, it performs the first statement in the brackets ... in this Perl example, that's to initialise the $now variable to 1. It then evaluates the expression given as the second element in the brackets - in the example checking if $now is less that or equal to 12. If that's true, the block is performed; if it's false, the program carries on running after the block.

If the block is performed (it doesn't have to be - a for loop's block may run zero times!), the third and final statement in the initial brackets is performed after the block - that adds one to $now in the example - and then the test in the second item (the expression) is performed again. And again, if that's true, the block is performed; if it's false, the program carries on running after the block.

You COULD do without a for loop ... move the first statement in the brackets above the loop code, change for to while and move the last statement inside the block as its very last statement. But that makes for three statements rather than one ... and code that's going to much harder to follow if you have to come back and update it later.

They say "imitation is the sincerest form of flattery" ... so I'm flattered by Martin Naughon's web site ([here]) which uses my diagram to illustrate the for loop. Actually, my feeling flattered also left me feeling slightly peeved initially because I've not been asked for permission, but that has now been sorted out between us. And - talk about mixed emotion - I'm open-mouthed at Martin's text which - reads "A lot of people do not know exactly how the for loop works in Java or Perl but they know how to make it work for them. Developers usually make it work through trial and error. The picture below illustrates exactly how a for loop works with arrows. If you know this picture, it will help you with some questions in the Sun Certified Java Programmer exam.". Martin - I hadn't realised how poorly informed most programmers were, nor how trivial the questions are in the Java Certification exams; actually, I think you're wrong in your view of the knowledge of most of our fellow programmers.

We cover the for loop on all of our programming courses - see [here].


Note - the for loop in Python does NOT work in the way described above - there's a commented example [here] stepping up through a range, and another Python example [here] that iterates through a list.
(written 2011-03-12, updated 2014-02-02)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
C203 - C and C based languages - Conditionals and Loops
  [3397] Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18)
  [3384] Loops - a comparison of goto, while and for - (2011-08-10)
  [3243] Breaking the running sequence - an introduction to conditional statements and loops - (2011-04-11)
  [3121] New year, new C Course - (2011-01-05)
  [3004] Increment operators for counting - Perl, PHP, C and others - (2010-10-18)
  [2570] Function Prototypes in C - (2010-01-11)
  [2002] New C Examples - pointers, realloc, structs and more - (2009-01-20)
  [1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)
  [1582] Ruby, C, Java and more - getting out of loops - (2008-03-19)
  [1220] for loop - how it works (Perl, PHP, Java, C, etc) - (2007-06-06)
  [1191] Smart English Output - via PHP and Perl ? : operator - (2007-05-18)
  [962] Breaking a loop - Ruby and other languages - (2006-12-03)
  [353] Wimbledon Neck - (2005-06-20)

H104 - PHP - Control Statements
  [3914] While, for, foreach or something else to loop. - (2012-11-06)
  [3895] Flowchart to program - learning to program with Well House - (2012-10-14)
  [2912] Predictions for the seagull population - (2010-08-09)
  [2304] Extracting real data from an exported file in PHP or Perl - (2009-07-25)
  [1825] Question Mark - Colon operator (Perl and PHP) - (2008-10-08)
  [1477] Decisions - small ones, or big ones? - (2007-12-18)
  [1199] Testing for one of a list of values. - (2007-05-22)
  [863] Double and Triple equals operator in PHP - (2006-09-12)
  [657] The ternary operator in Python - (2006-03-25)
  [421] Don't repeat code - use loops or functions - (2005-08-21)
  [406] Assignment, equality and identity in PHP - (2005-08-08)
  [340] Code and code maintainance efficiency - (2005-06-08)

J704 - Java - Loops and Conditional Statements
  [3038] Setting up individual variables, and arrays, in Java - some commented examples - (2010-11-09)
  [2734] for and foreach in Java - (2010-04-22)

P206 - Perl - More Loops and Conditionals
  [3619] Ruby v Perl - a comparison example - (2012-02-21)
  [3398] Perl - making best use of the flexibility, but also using good coding standards - (2011-08-19)
  [2972] Some more advanced Perl examples from a recent course - (2010-09-27)
  [2967] Multiway branches in Perl - the given and when syntax - (2010-09-22)
  [2892] Alternative loops and conditionals in Ruby and Perl - (2010-07-28)
  [2832] Are you learning Perl? Some more examples for you! - (2010-06-27)
  [2824] A pint of Black Rat, and a lazy barman - (2010-06-25)
  [2817] Setting a safety net or fallback value in Perl - (2010-06-19)
  [2815] switch and case, or given and when in Perl - (2010-06-17)
  [2711] For loop - checked once, or evety time? Ruby v Perl comparison and contrast - (2010-04-07)
  [299] What - no switch or case statement? - (2005-05-03)
  [138] Perl - redo and last without a loop - (2004-12-02)

R104 - Ruby - Control Structures
  [3769] Muttable v immutable and implications - Ruby - (2012-06-20)
  [3620] Finding the total, average, minimum and maximum in a program - (2012-02-22)
  [3422] Assigning values to variables within other statements - Ruby - (2011-09-07)
  [3254] Multiple inputs, multiple out, ruby functions - (2011-04-19)
  [3253] Is this number between? Does this list include? - Ruby - (2011-04-18)
  [3159] Returning multiple values from a function call in various languages - a comparison - (2011-02-06)
  [3158] Ruby training - some fresh examples for string handling applications - (2011-02-05)
  [3156] Splitting data reading code from data processing code - Ruby - (2011-02-04)
  [2975] Why do I need brackets in Ruby ... or Perl, Python, C or Java - (2010-09-29)
  [2619] Passing code to procedures and yield in Ruby - (2010-02-02)
  [2471] A short form of if ... then ... else - (2009-10-23)
  [2287] Learning to program in Ruby - examples of the programming basics - (2009-07-15)
  [1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
  [1891] Ruby to access web services - (2008-11-16)
  [1887] Ruby Programming Course - Saturday and Sunday - (2008-11-16)
  [1870] What to do with a huge crop of apples - (2008-11-04)
  [1738] Clean code, jump free (Example in Lua) - (2008-08-06)
  [1587] Some Ruby programming examples from our course - (2008-03-21)
  [1163] A better alternative to cutting and pasting code - (2007-04-26)
  [995] Ruby's case - no break - (2006-12-17)
  [985] Equality in Ruby - == eql? and equal? - (2006-12-14)
  [960] 1st, 2nd, 3rd revisited in Ruby - (2006-12-02)

Y103 - Python - Conditionals and Loops
  [4210] If elif elif elif - multiway selection in Python - (2013-11-16)
  [4092] Identity in Python - (2013-05-17)
  [3762] Learning to program - the if statement. Python. - (2012-06-12)
  [3558] Python or Lua - which should I use / learn? - (2011-12-21)
  [3439] Python for loops - applying a temporary second name to the same object - (2011-09-14)
  [3083] Python - fresh examples from recent courses - (2010-12-11)
  [2899] Groupsave tickets - 3 or 4 train tickets for the price of 2 - (2010-08-02)
  [2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
  [1661] Equality, sameness and identity - Python - (2008-05-31)
  [1201] No switch in Python - (2007-05-23)
  [909] Python is like a narrowboat - (2006-10-30)
  [835] Python - when to use the in operator - (2006-08-16)
  [788] New - Conditional expressions in Python 2.5 - (2006-07-01)
  [668] Python - block insets help with documentation - (2006-04-04)


Back to
Lunch for Melksham Businesses
Previous and next
or
Horse's mouth home
Forward to
A change to the Well House team - thank you and good luck, Chris
Some other Articles
Two views of a war memorial
Melksham Town Council announces ...
Telling you something about us in just one line
A change to the Well House team - thank you and good luck, Chris
How a for loop works Java, Perl and other languages
Lunch for Melksham Businesses
TransWilts rail - coming together, wanted and needed
Finding and diverting image requests from rogue domains
No news is good news.
Sunny day - Clanger and Picket Woods, Shearwater, and Westbury
4255 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, 83, 84, 85, 86 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - 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).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/3200_How ... uages.html • PAGE BUILT: Sun Mar 30 15:20:58 2014 • BUILD SYSTEM: WomanWithCat