Основное различие заключается в том, что switch
отправляет немедленно в соответствующий case
, как правило, посредством индексного перехода, вместо того, чтобы оценивать все условия, которые потребуются в цепочке if-else
, что означает, что код в конце цепочки достигается медленнее, чем код в начале.
Это, в свою очередь, накладывает некоторые ограничения на оператор switch
, которого нет в цепочке if-else
: он не может обрабатывать все типы данных, и все значения case
должны быть постоянными.