Steven Schveighoffer, el 22 de junio a las 07:26 me escribiste: > On Mon, 21 Jun 2010 20:40:14 -0400, Adam Ruppe > <destructiona...@gmail.com> wrote: > > >What's the point of a switch without implicit fallthrough? > > Maintenance. Using if statements instead of switch, you have to > repeat the value to test for each of the cases. If you want to > change the value being tested, it's one change. And your workaround > using a delegate is not very appealing.
And it's a bit comfortable when used with expressions that should be evaluated just one: switch (foo()) { case xxx: ... case yyy: ... } vs auto tmp = foo(); if (tmp == xxx) { ... else if (tmp == yyy) { ... } > I'll also point out that popular languages have a switch statement > and don't allow implicit fallthrough, meaning that 100% of switch > statements do not have fallthrough. And switch is used quite often > in those languages too, so at least some people think it has use > besides allowing implcit fallthrough. > > I think mostly it's because the meaning of it is so easy to > understand when reading/writing it. When you see a switch, you know > what it is and what it isn't. An if statement has many > possibilities and must be read more carefully. Like for/while vs goto and foreach vs while/for. They are specializations for common uses. It helps both the programmer to write/read more clear code and the compiler to generate more efficient code because they have a more defined semantics and it can make more assumptions. -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- Creativity is great but plagiarism is faster