[Python-Dev] PEP 275: "Switching on Multiple Values", Rev 1.1

M.-A. Lemburg mal@lemburg.com
Tue, 13 Nov 2001 11:08:07 +0100


Skip Montanaro wrote:
> 
>     mal> Syntax:
> 
>     mal>     switch EXPR:
>     mal>         case CONSTANT:
>     mal>             SUITE
>     mal>         case CONSTANT:
>     mal>             SUITE
>     mal>         ...
>     mal>         else:
>     mal>             SUITE
> 
>     mal>     (modulo indentation variations)
> 
>     mal>     The "else" part is optional. If no else part is given and none
>     mal>     of the defined cases matches, a ValueError is raised.
> 
> Hmmm...  This doesn't jive well with current if statement semantics.  I can
> write
> 
>     if x == "first":
>        dofirst()
> 
> and no ValueError is raised if x == "second".  Why should switch be any
> different?

Hmm, you may have a point there. If the programmer wants an
exception to be raised in case none of the values matches,
she can put that code into the else-clause... I'll have to 
think about this some more, but it seems that you're right.

-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Consulting & Company:                           http://www.egenix.com/
Python Software:                        http://www.lemburg.com/python/