Un detalle mas. Los diferentes casos de un switch se separan mediante la instruccion break, si no lo pones, se ira ejecutando un case despues de otro, hasta el primer break que se encuentre, o hasta llegar al final de la estructura switch.
Y bueno, no se si con un de tus preguntas te referias a esto o no, pero si tienes distintos case, que ejecutan un mismo codigo, por el parrafo anterior puedes ponerlo asi:
Código
switch(valor_o_expresion) { case un_caso: case otro_caso: /* ... */ case otro_caso_mas: /* aqui va el codigo que ejecutan los casos comunes */ break; }
¡Saludos!