Возможный дубликат:
Почему оператор switch был предназначен для перерыва?
Интересное явление самого популярного языка [c, c ++, java] заключается в том, что по умолчанию переключение является аварийным.
Мне интересно, почему кто-то знает эту историю?
В C причиной этого было намерение сделать switch
легко оптимизируемый в таблицу переходов. В основном, на основе выражения, приложение вычислит расстояние прыжка, перейдет к определенной точке и продолжит выполнение с этой точки.
Я, однако, думаю, что такое поведение иногда полезно, потому что это помогает избежать повторения кода в многократном case
с, и в конце концов это не трудно поставить break
когда вам это нужно.
Wiki есть достойный пример, чтобы проиллюстрировать, как можно использовать спад:
switch (n) {
case 0:
printf("You typed zero.");
break;
case 4:
printf("n is an even number.");
case 1:
case 9:
printf("n is a perfect square.");
break;
case 2:
printf("n is an even number.");
case 3:
case 5:
case 7:
printf("n is a prime number.");
break;
case 6:
case 8:
printf("n is an even number.");
break;
default:
printf("Only single-digit numbers are allowed.");
}
Других решений пока нет …