Вопросы к Поиску с Алисой
Оператор условного перехода case в большинстве языков программирования может работать только с целочисленным типом из соображений быстродействия. yandex.ru Если константы, по которым осуществляется ветвление, небольшие, то можно завести массив адресов перехода, который будет индексирован значением переключателя и прыгать на нужный блок кода за небольшое количество инструкций. yandex.ru
Также ограничение на использование вещественных переменных связано с тем, что результат сравнения близких вещественных чисел на точное равенство не определён. yandex.ru Для чисел с плавающей точкой оператор точного сравнения обычно не имеет смысла, так как они получаются из датчиков, которые дают погрешность, и математических операций, где проходят округления. yandex.ru
При этом в некоторых языках, например C#, оператор case допускает использование строк и некоторых других типов данных. stackoverflow.com