If statements vs case
Richard Gaskin
ambassador at fourthworld.com
Mon Feb 26 15:39:45 EST 2007
Hershel Fisch wrote:
> On 2/26/07 2:27 PM, "Shao Sean" <shaosean at wehostmacs.com> wrote:
>
>> There are differences between SWITCH and IF-ELSE-IF statements in other
>> languages, but in regards to Revolution someone from the engine team
>> would be best to answer it.
>>
>> In many languages SWITCH statements are converted into a hash table for
>> much quicker lookups and using a SWITCH once or twice is slower than
>> using an IF-ELSE-IF statement due to the SWITCH statement getting
>> hashed, but using the same SWITCH statement multiple times will
>> increase the speeds.
>> Also, because of the fact that an IF-ELSE-IF statement is _always_
>> evaluated, they can never be faster than a SWITCH statement (they can
>> be just as fast, but never faster)
> Sorry, what do you mean that IF-ELSE-IF is always evaluated?
> Dosn't the "else" break it?
> If
> else
> if
> end if
> End if
> Hershel
I believe Shao Sean is correct, at least as far as the initial condition
goes.
Of course when nesting if the first one is false then the nested ones
won't be evaluated.
Also, Rev's if is fairly well optimized, so in a single if with multiple
conditions like this:
if (1=2) AND ("r" is in "richard") then
...the second test won't be tried since the first one isn't true.
This can be helpful to keep in mind when writing multi-condition ifs,
putting the least likely one in front to minimize subsequent processing.
--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
More information about the use-livecode
mailing list