One situation when the order of evaluation is important is if you have 
conditions that limit the scope of a general handler, eg:

if "field" is in the target and the locktext of the target = true then…

In this case the first clause is evaluated first, and if the target is 
something other than a field, the second clause is skipped and you avoid 
throwing an error. With the clauses switched in order, you throw an error if 
the target is, eg, a button.

I used to nest if statements:

if "field" is in the target then
   if the locktext of the target = true then…

... until I realized I could do it all in one line.

-- Peter

Peter M. Brigham
pmb...@gmail.com
http://home.comcast.net/~pmbrig

On Jan 27, 2013, at 1:39 PM, Peter Haworth wrote:

> Musings about complex if statements on this Sunday morning....
> 
> Lets say you have a complex if statement with 4 conditions that must all be
> true.  Is there any advantage, other than personal preference/style, to:
> 
> if cond1 and cond2 and cond3 and cond4 then.....
> 
> or
> 
> if cond1 then
>   if cond2 then
>      if cond3 then
>         if cond4 then...
> 
> In either case, as soon as a condition evaluates to false, none of the rest
> are evaluated, right?  If so, then always best to put the conditions that
> take the longest to evaluate further down the list, for example perhaps an
> SQL SELECT statement that might take a while to execute?  But then what if
> some of the conditions are in parens, for example:
> 
> if cond1 and cond2 and (cond3 and cond4) then....
> 
> The manual says the grouping operator (parens) has the highest precedence
> so does this mean (cond3 and cond4) will be evaluated before cond1 and
> cond2?
> 
> Just curious.
> 
> 
> Pete
> lcSQL Software <http://www.lcsql.com>
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to