switch
могут быть очень полезны, но приводят к общей ошибке, когда программист забыл оператор break:
switch(val) {
case 0:
foo();
break;
case 1:
bar();
// oops
case 2:
baz();
break;
default:
roomba();
}
Вы не получите предупреждения, потому что иногда провал явно желателен. Хороший стиль кодирования предлагает комментировать, когда ваш провал преднамерен, но иногда этого недостаточно.
Я уверен, что ответ на этот вопрос нет, но: есть ли какой-либо способ (или предлагается в будущем), чтобы он мог попросить компилятор выбросить ошибку (или хотя бы предупреждение!), если ваш case
не имеет хотя бы одного из break;
или чего-то вроде // fallthru
? Было бы неплохо иметь опцию защитного программирования для использования операторов switch
.