Как уже отмечали другие, размещение разрыва после возврата или в случае по умолчанию - это в основном вопрос личного стиля.
Когда мне не нужно следовать каким-либо определенным правилам стиля, я предпочитаю что-то вроде этого:
switch(foo){
case 0:
baz = 1;
break;
case 1:
bar %= 2;
return -1;
/* NOTREACHED */
case 2:
bar = -1;
return -2;
/* NOTREACHED */
break;
default:
break;
}
Между случаями 1 и 2 я предпочитаю 2. Несмотря на то, что в комментарии написано, что НЕПРАВИЛЬНО, комментарии могут лгать (непреднамеренно, конечно), когда код изменяется. Мне нравится комментарий NOTREACHED, так как он может убедить вас в том, что вы знаете, что делаете, и служит напоминанием о том, что вы выходите из функции раньше. Причины, по которым размещение перерыва после возврата уменьшит количество ошибок, если возврат будет удален, кажутся мне ошибочными. Вы по-прежнему будете вести себя фиктивно, независимо от того, перейдете ли вы к следующему случаю или выйдете из коммутатора и продолжите, как и раньше.
Конечно, если бы я мог избежать этого, я бы не вернулся из функции в теле переключателя.