Many thanks again - very good lessons - I greatly appreciate the time
you've taken to write these out (I do know that writing clear, concise
lessons like this is much harder than it looks; so thank you again. They
are a great help.
Seamus
At 09:17 pm 13/07/01 , you wrote:
>Seamus
>
>To review, our solution to the classic "Native American" problem was:
>
> <cfset amount=18.00>
>
> <cfloop index=theYear from=1624 to=2001 step=1>
>
> <cfset amount = amount * 1.04>
>
> <cfloop>
>
>The heading lifting is being done in the <cfloop> tag:
>
> setting the starting and ending values for year
>
> setting the increment for year
>
> testing for the end value of year.
>
>We used this style of loop because we have a predetermined number of
>steps, 377 (2001 - 1624). Even if we change the problem to specify
>biannual interest, we still have a fixed number of steps... we just
>change the step value to 2.
>
>Then I redefined the problem to:
>
> The Dutch purchased Manhattan Island from the "Native Americans"
>for $18.00 in
> er, ah... lets say 1624. If the money were invested at 4%, compounded
> annually, when would the value exceed $200,000?
>
>Now, we can't determine in advance how many steps are necessary,
>because that depends on the calculation within the loop.
>
>if we write this out abstractly, we have:
>
> Start with an amount of $18,00
>
> Start at a year of 1624
>
> Repeat
>
> Multiply the amount by 1.04
>
> Add 1 to the year
>
> until the Amount is Greater Than 2000
>
>To translate this into CF we have:
>
> <cfset amount=18.00>
>
> <cfset year=1624>
>
> <cfloop condition="#amount# LTE 200000">
>
> <cfset amount = amount * 1.04>
>
> <cfset year = year + 1>
>
> <cfloop>
>
>In the above, the <cfloop> tag does a lot less work than our prior
>example... it only tests if the loop should continue (while the
>condition is still true).
>
>As before, the body of the loop computes a new amount... this is used
>in the condition that controlls the loop
>
>In addition, we increment the year within the body of the loop,
>because it is the answer we seek (and it is no longer being computed
>in the <cfloop> tag
>
>If we want to compute biannual interest, we merely change the year
>increment within the loop body:
>
> <cfset year = year + 2>
>
>So, we have covered the two basic types of loops:
>
> a FOR loop (predetermined number of steps)
>
> A WHILE loop (while a condition is true - unknown number of steps)
>
>CF, in its benevolence, provides us with some specialized loops so we
>can easily iterate over complex structures: lists, queries and
>collections.
>
>These are, in fact, just a more-convenient format of a FOR loop.
>
>
>.... Next time.
>
>HTH
>
>Dick
>
>
>
>
>
>
>
>
>
>
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists