On Wed, 09 Dec 2009 18:50:29 +0000, Nobody wrote: > On Tue, 08 Dec 2009 21:02:44 -0800, Kee Nethery wrote: > >> I string together a bunch of elif statements to simulate a switch >> >> if foo == True: >> blah >> elif bar == True: >> blah blah >> elif bar == False: >> blarg >> elif .... > > This isn't what would normally be considered a switch (i.e. what C > considers a switch).
Anyone would think that C was the only programming language in existence... > A switch tests the value of an expression against a > set of constants. In C. Things may be different in other languages. For example, I recall the so-called "4GL" (remember when that was the marketing term of choice for interpreted programming languages?) Hyperscript from Informix. I can't check the exact syntax right now, but it had a switch statement which allowed you to do either C-like tests against a single expression, or if-like multiple independent tests. Moving away from obsolete languages, we have Ruby which does much the same thing: if you provide a test value, the case expression does a C- like test against that expression, and if you don't, it does if-like multiple tests. http://www.skorks.com/2009/08/how-a-ruby-case-statement-works-and-what- you-can-do-with-it/ > If you were writing the above in C, you would need to > use a chain of if/else statements; you couldn't use a switch. > > Compiled languages' switch statements typically require constant labels > as this enables various optimisations. Pascal, for example, can test against either single values, enumerated values, or a range of values: case n of 0: writeln('zero'); 1, 2: writeln('one or two'); 3...10: writeln('something between three and ten'); else writeln('something different'); end; -- Steven -- http://mail.python.org/mailman/listinfo/python-list