9
I use switches when I am using an enum to dictate what actions my method should take. It helps when the actions are mutually exclusive.
It may be easier for the compiler to turn a switch statement into a dispatch table than it would be to turn the equivalent if/else soup into a dispatch table. If (and only if) that's true, you should then have O(1) dispatch to the relevant code, instead of O(log n) (or O(n), if the if/else soup is badly written).
In some (although not all) cases it may also be easier to check that you've covered the necessary tests using switch than a wodge of if/else.