Re: switch statement
- Posted by jeremy (admin) Mar 25, 2009
- 1369 views
With a switch statement, once a case evaluates as true, then all further case statements are ignored and a break will cause the switch to be exited. Here is an example:
sequence value = "red" switch value do case "apple": case "pear": case "orange": puts(1, "It's a fruit!\n") break case "yellow": case "blue": case "red": puts(1, "It's a color!\n") break case else puts(1, "I have no clue what it is \n") end switch -- Output is "It's a color!"
As for break vs. continue, we choose to keep the normal functionality of a switch as defined in just about every language. It would be pretty difficult for anyone who uses multiple languages or has knowledge of another language, to come to Euphoria and start working with a backward switch. That would be serious cause of bugs and errors.
I think what some people are thinking about is actually a select statement:
sequence value = "red" select value do case "apple": puts(1, "It's an apple\n") case "pear": puts(1, "It's a pear\n") case "orange": puts(1, "It's an orange!\n") case "yellow": puts(1, "It's yellow\n") case "blue": puts(1,"It's blue\n") case "red": puts(1, "It's red\n") case else puts(1, "I have no clue what it is \n") end select -- Output is: "It's red"
A select statement does not fall-thru. Euphoria does not yet have a select statement, I just was showing the differences.
Jeremy