[Gambas-user] IF and AND - what is more efficient?
Rolf-Werner Eilert
eilert-sprachen at ...221...
Thu Jun 7 11:48:44 CEST 2007
Benoit Minisini schrieb:
> On jeudi 07 juin 2007, Rolf-Werner Eilert wrote:
>> Good morning everyone,
>>
>> as I don't know how the Gambas interpreter handles AND clauses in IF
>> conditions, this is where I just was contemplating about:
>>
>> Let's assume I've got three different strings to compare which are in a
>> table-like structure. Only when all the three strings are right, the app
>> is to do something with it. The priorities are that there are a lot of
>> entries with string1, fewer ones with string2 and the least with
>> string3, so it's advisable to sort out string1 first, then string2 and
>> string3 as the last one. The table is rather long, and I want to save
>> time and processor load :-)
>>
>> Sure it would be ok to write
>>
>> IF string1 = "xyz" AND string2 = "abc" AND string3 = "www" THEN
>>
>> but would the interpreter try to check all the three before deciding to
>> skip the block? Might it be more advisable to check it like
>>
>> IF string1 = "xyz" THEN
>> IF string2 = "abc" THEN
>> IF string3 = "www" THEN
>>
>> so it wouldn't jump to the next condition at all? Or is THIS the less
>> efficient version because of something I don't know?
>>
>> Regards
>>
>> Rolf
>>
>
> AND always evaluates all its arguments, so if you do
>
> IF test1 AND test2 AND test3 THEN
>
> ...the three test expressions will be evaluated.
>
> If you want test2 to be evaluated only if test1 is TRUE, and so on, you must
> use the following syntax:
>
> IF test1 AND IF test2 AND IF test3 THEN
>
> Note that this syntax is only available in gambas 1.9.x.
>
> Regards,
>
Ok Benoit,
then I'll be happier with the old way writing
IF string1 = "xyz" THEN
IF string2 = "abc" THEN
IF string3 = "www" THEN
because I'm still using the (stable) older version. Thanks for this hint!
Regards,
Rolf
More information about the User
mailing list