Python IF THEN chain equivalence

Grant Edwards invalid at invalid
Thu Nov 13 23:40:48 CET 2008


On 2008-11-13, Grant Edwards <invalid at invalid> wrote:
> On 2008-11-13, jzakiya <jzakiya at mail.com> wrote:
>> I'm translating a program in Python that has this IF Then chain
>>
>>
>> IF  x1 < limit:   --- do a ---
>>     IF  x2 < limit:  --- do b ---
>>         IF x3 < limit:  --- do c ---
>>                        .-----
>>                         ------
>>                     IF  x10 < limt: --- do j ---
>>                     THEN
>>                  THEN
>>               -----
>>           THEN
>>      THEN
>> THEN
>
> The placement of the THEN statements makes absolutely no sense
> in any language I've ever seen.
>
>> In other words, as long as    'xi' is less than 'limit' keep going
>> down the chain, and when 'xi' isn't less than 'limit' jump to end of
>> chain a continue.
>>
>> Is this the equivalence in Python?
>>
>>  IF  x1 < limit:
>>         --- do a  ---
>>  elif x2 < limit:
>>         --- do b ---
>>  ----
>>  ----
>>  elif x10 < limit:
>>        --- do j ---
>
> No.  That's not the same at all.
>
>
> Here's one solution:
>
> while True:
>   if x1 > limit: break
>   do a
>   if x2 > limit: break
>   do b
>   if x3 > limit: break
>   do c
>   ...
>   if x10 > limit: break
>   do j
>   break  

Oops.  I botched the case where xN == limit.  Each of the tests
should be xN >= limit.

-- 
Grant Edwards                   grante             Yow! ... I see TOILET
                                  at               SEATS ...
                               visi.com            



More information about the Python-list mailing list