Effettivamente lo switch è moooooolto più elegante di una cascata di if-else-if-else-if-else... che a volte, ad esempio nel C++, è una scelta obbligata, magari perchè è bassato su stringhe e non su costanti numeriche... mentre ad esempio C# permette di usare anche le stringhe, o magari altri tipi di dato: ed è proprio in questo modo che il costrutto rivela la sua potenza!